|
проверка заполнения документа | ☑ | ||
---|---|---|---|---|
0
starV
09.06.14
✎
09:10
|
Всем привет!!!
Народ как проверит при заполнении документа, мне подсказали что код будет примерна так: Процедура РасчетПериодаНачисления(ТекстЗапроса, ПериодыДействияМассив, Отказ, Заголовок) Регистратор = Отбор.Регистратор.Значение; Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("Регистратор", Регистратор); Запрос.УстановитьПараметр("ПериодыДействия", ПериодыДействияМассив); МассивВидовВремени = Новый Массив; МассивВидовВремени.Добавить(Перечисления.ВидыВремени.ЧасовоеНеотработанное); Запрос.УстановитьПараметр("ВнутрисменныеВидыРасчета", МассивВидовВремени); Выборка = Запрос.Выполнить().Выбрать(); ТекущийСотрудник = Неопределено; ТекущийПериодДействия = Неопределено; ОрганизацияТекущегоСотрудника = Неопределено; ПериодыНачисления = Новый ТаблицаЗначений; ПериодыНачисления.Колонки.Добавить("ДатаНачала"); ПериодыНачисления.Колонки.Добавить("ДатаОкончания"); НаборЗаписей = РегистрыСведений.ПериодыНачисленийСотрудников.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Сотрудник.Использование = Истина; НаборЗаписей.Отбор.ПериодДействия.Использование = Истина; НаборЗаписей.Отбор.Организация.Использование = Истина; Пока Выборка.Следующий() Цикл Если Выборка.Сотрудник <> ТекущийСотрудник ИЛИ Выборка.ПериодДействия <> ТекущийПериодДействия ИЛИ Выборка.Организация <> ОрганизацияТекущегоСотрудника Тогда Если ТекущийСотрудник <> Неопределено Тогда ПеренестиПериодыНачисленияВНаборЗаписей(ПериодыНачисления, НаборЗаписей, ТекущийСотрудник, ОрганизацияТекущегоСотрудника, ТекущийПериодДействия); НаборЗаписей.Отбор.Сотрудник.Значение = ТекущийСотрудник; НаборЗаписей.Отбор.ПериодДействия.Значение = ТекущийПериодДействия; НаборЗаписей.Отбор.Организация.Значение = ОрганизацияТекущегоСотрудника; НаборЗаписей.Записать(); НаборЗаписей.Очистить(); КонецЕсли; ТекущийСотрудник = Выборка.Сотрудник; ОрганизацияТекущегоСотрудника = Выборка.Организация; ТекущийПериодДействия = Выборка.ПериодДействия; КонецЕсли; Если Выборка.ПериодДействияНачало <> NULL Тогда Если Выборка.Сторно Тогда УдалитьПериод(ПериодыНачисления, Выборка.ПериодДействияНачало, Выборка.ПериодДействияКонец); Иначе ДобавитьПериод(ПериодыНачисления, Выборка.ПериодДействияНачало, Выборка.ПериодДействияКонец, Истина, Выборка.СотрудникНаименование + ": обнаружено повторное начисление за период ", Отказ, Заголовок); КонецЕсли; КонецЕсли; КонецЦикла; Если ТекущийСотрудник <> Неопределено Тогда ПеренестиПериодыНачисленияВНаборЗаписей(ПериодыНачисления, НаборЗаписей, ТекущийСотрудник, ОрганизацияТекущегоСотрудника, ТекущийПериодДействия); НаборЗаписей.Отбор.Сотрудник.Значение = ТекущийСотрудник; НаборЗаписей.Отбор.ПериодДействия.Значение = ТекущийПериодДействия; НаборЗаписей.Отбор.Организация.Значение = ОрганизацияТекущегоСотрудника; НаборЗаписей.Записать(); НаборЗаписей.Очистить(); КонецЕсли; КонецПроцедуры |
|||
1
starV
09.06.14
✎
09:11
|
код самом начале
Регистратор = Отбор.Регистратор.Значение; не понимаю откуда как |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |