Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 11:42

ВыборПоЗначению из Журнала Расчета

Автор sail, 24 апр 2014, 12:31

0 Пользователей и 1 гость просматривают эту тему.

sail

Подскажите, пожалуйста, не могу разобраться с ошибкой. Хочу выбрать из журнала расчетов те записи, в которых в графе "Место работы" указано определенное подразделение. Мне выдает:

ЖрнЗарплата.ВыбратьПоЗначению ("Место работы",подр, Нач,Кон);   
{ВидРасчета.ПрофВзносы.Модуль Расчета(29)}: Неверное имя реквизита!
В журнале расчетов у меня есть реквизит МестоработыПолное и ему соответсвует графа в форме журнала "Место работы".
В чем проблема? Заранее спасибо.

Herby

Цитата: sail от 24 апр 2014, 12:31"Место работы"

в этом проблема. реквизиты не могут быть с пробелами. А то что оно у вас в журнале так указывается это еще ничего не значит, это всего лишь пользовательское представление, а нужен идентификатор этой графы отбора.

Кошки рулят

Цитата: sail от 24 апр 2014, 12:31В журнале расчетов у меня есть реквизит МестоработыПолное
Зачем? Что за извращение? Это ты сам придумал или подучил кто?
И как ты с такими познаниями начинаешь что-то лепить в конфигурацию ...


sail

Изначально я все вписала правильно, но мне выдало такую ошибку и я уже стала сомневаться в этом имени, вот и налепила.
Но проблема не решена. я прописыванию МестоРаботыПолное, но все равно ошибка. Прредставлю кусок кода побольше, может это поможет:
                        Сум = 0; 
            Процент = Константа.ПрофВзносы.Получить(ДатаОкончания);
              ЖрнЗарплата = СоздатьОбъект("ЖурналРасчетов.Зарплата");
         тзр=создатьобъект("Таблицазначений");
                  тзр.новаяколонка("место");
         тзр.новаяколонка("участок");
                  Нач = ЖрнЗарплата.НачалоТекущегоПериода();
         Кон = ЖрнЗарплата.КонецТекущегоПериода();
         ЖрнЗарплата.ВыбратьПериодПоОбъекту(Объект, ДатаНачала);
         ЖрнЗарплата.ВыбратьЗаписиПоОбъекту(Объект,Нач,Кон);
      Пока ЖрнЗарплата.ПолучитьЗапись() = 1 Цикл
            тзр.новаястрока();
             тзр.место = ЖрнЗарплата.МестоРаботыПолное;
            тзр.участок=ЖрнЗарплата.Участок;
      конеццикла; 
      
      если тзр.количествострок()>0 тогда
         тзр.свернуть("место, участок",""); 
         тзр.выбратьстроки();
         пока тзр.получитьстроку()=1 цикл
            если ПустоеЗначение(тзр.место)=0 тогда   
             ЖрнЗарплата.ВыбратьПоЗначению ("МестоРаботыПолное",тзр.место,Нач,Кон);   
                      Пока ЖрнЗарплата.ПолучитьЗапись() = 1 Цикл
            Если ВходитВГруппу(ЖрнЗарплата.ВидРасч, ЖрнЗарплата.Вид, "ДляПрофВзносов", ЖрнЗарплата.ДатаНачала) = 1 Тогда
               Если ЖрнЗарплата.Перерасчет=0 тогда
                  Сум = Сум + ЖрнЗарплата.Результат;
               КонецЕсли;
            КонецЕсли;
         КонецЦикла;
         Результат = Округл(Сум * Процент * 0.01);   
         ЖрнЗарплата.УстановитьРеквизит("МестоРаботыПолное", тзр.место);
         ЖрнЗарплата.УстановитьРеквизит("Участок", тзр.участок);
         конецесли;
         КонецЦикла;
      конецесли;

Кошки рулят

Для поиска косяков с отборами в журналах есть очень простой прием: сделать такой отбор интерактивно. Если получится, значит и программно все сработает ...

sail

Как понять интерактивно? Просто я начинающий программист 1с

Herby

Цитата: sail от 25 апр 2014, 12:53Как понять интерактивно? Просто я начинающий программист 1с

интерактивно - это значит что пользователь может сделать стандартными средствами в режиме "1с-Предприятие".

в верхней панели журнала где вы выбираете период, есть еще куча пиктограмм и некоторые из них как раз отвечают за отбор документов/элементов по реквизиту.


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск