Имя: Пароль:
1C
1С v8
1С 8.2 Обработка для ВводСведенийОПлановыхНачисленияхРаботниковОрганизаций
0 Areso
 
11.08.15
11:18
В общем, исходя из предыдущей темы, разобрался как заполнять табличные части в обычном приложении (никогда раньше не имел с не-управляемые формами дел), и заполнил. Оказалось - зря, потому что объект никуда в регистры не пишет, и при расчетах зп обращается к Документам, а я сделал дубль-документ в конфигурации, чтобы не трогать поставку.
Итак, завел обработку, перенес в неё код, и следующая часть кода у меня не работает (впрочем, у меня и раньше были вопросы к таинственной ТаблицеЗначений РаботникиОрганизации, но оно хотя бы работало, когда было размещено в форме):

Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПоле) Экспорт;
    ОбъектДокумента = ПолеВвода1;
    ОбъектДокумента.ПолучитьФорму().Открыть();    
        
    А0=РаботникиОрганизации.ВыгрузитьКолонку("ФизЛицо");
    А2=РаботникиОрганизации.ВыгрузитьКолонку("Приказ");
    //получаем количество работников
    А0К = А0.Количество();
    //подтягиваем интересующий вид Основного Начисления, из учета, что он не предопределенный
    А=ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоНаименованию("Доплата за ненормированный рабочий день");
    Для  Сч1 = 0 По А0К-1 Цикл
        НоваяСтрока = Объект.ОсновныеНачисления.Добавить();
        НоваяСтрока.ФизЛицо = А0[Сч1];
        НоваяСтрока.Приказ = А2[Сч1];
        НоваяСтрока.ВидРасчета = А;
        НоваяСтрока.Действие = Перечисления.ВидыДействияСНачислением.Начать;
        НоваяСтрока.ДатаДействия = '20150701';
        НоваяСтрока.Показатель3 = 12;
    КонецЦикла;
КонецПроцедуры

Пробовал по разному:
А0=ЭтотОбъект.РаботникиОрганизации.ВыгрузитьКолонку("ФизЛицо");
пробовал и
А0=Объект.РаботникиОрганизации.ВыгрузитьКолонку("ФизЛицо");
А0=ОбъектДокумента.РаботникиОрганизации.ВыгрузитьКолонку("ФизЛицо");
Никак не получается. А код, будучи вставлен в дополнительную кнопку на указанной форме (точнее её дубликате), работал.
И что это вообще за РаботникиОрганизации? Этих данных нет в реквизитах, и нет такой табличной части... Ума не приложу.
1 Areso
 
11.08.15
12:30
Собственно, как можно обратиться к таблице значений РаботникиОрганизации данной формы из обработки?
2 Areso
 
12.08.15
11:28
Рабочий код:

Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПоле) Экспорт;
    ОбъектДокумента = ПолеВвода1;
    ОбъектДокумента.ПолучитьФорму().Открыть();    
КонецПроцедуры
  
Процедура Кнопка1Нажатие(Элемент)
    // Вставить содержимое обработчика.
        МойОбъект = ПолеВвода1;
        МойОбъект = МойОбъект.ПолучитьОбъект();
        
        РаботникиОрганизации = Новый ТаблицаЗначений;
    РаботникиОрганизации.Очистить();
    
    ТЗ = МойОбъект.ОсновныеНачисления.Выгрузить();
    ТЗ.Свернуть("ФизЛицо,Приказ");
    
    А0=ТЗ.ВыгрузитьКолонку("ФизЛицо");
    А2=ТЗ.ВыгрузитьКолонку("Приказ");
    ////получаем количество работников
    А0К = А0.Количество();
    ////подтягиваем интересующий вид Основного Начисления, из учета, что он не предопределенный
    А=ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоНаименованию("Доплата за ненормированный рабочий день");
    Для  Сч1 = 0 По А0К-1 Цикл
        НоваяСтрока = МойОбъект.ОсновныеНачисления.Добавить();
        НоваяСтрока.ФизЛицо = А0[Сч1];
        НоваяСтрока.Приказ = А2[Сч1];
        НоваяСтрока.ВидРасчета = А;
        НоваяСтрока.Действие = Перечисления.ВидыДействияСНачислением.Начать;
        НоваяСтрока.ДатаДействия = '20150701';
        НоваяСтрока.Показатель3 = 12;
    КонецЦикла;
    МойОбъект.Записать();
КонецПроцедуры

Казалось бы, невелика разница. А времени потрачено уйма.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn