|
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; КонецЦикла; МойОбъект.Записать(); КонецПроцедуры Казалось бы, невелика разница. А времени потрачено уйма. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |