1С:Предприятие 7.70.027. Как в принудительно завершить обработку в коде?
17.11.2010
14:07
#1
"Задача состоит в том чтобы вызвать обработку Форма1НДФЛ2009, записать нужные данные в константы и завершить ее. И так по списку для каждого человека.
Вызываю я вот так: "ОткрытьФорму("Обработка.Форма1НДФЛ2009",Параметры1);"
Завершить пытаюсь так: "Форма.Закрыть(0);"(эта строчка стоит в конце процедуры "При открытии" в самой обработке.) Обработка не завершается, пока мы не пройдем весь список. И получается что для всех людей мы используем данные из констант записанных для первого человека."
Вызываю я вот так: "ОткрытьФорму("Обработка.Форма1НДФЛ2009",Параметры1);"
Завершить пытаюсь так: "Форма.Закрыть(0);"(эта строчка стоит в конце процедуры "При открытии" в самой обработке.) Обработка не завершается, пока мы не пройдем весь список. И получается что для всех людей мы используем данные из констант записанных для первого человека."
17.11.2010
14:45
#3
"Я делал подобную задачку. Смысл был вот в чем. В 1С:Бухгалтерии 7.7 для того, чтобы сдать в ИМНС сведния о доходах, нужно пройтись по справочнику сотрудников и по отношению к каждому сделать такую вещь: нажать кнопку "Налоги на доходы" и выбрать там "Справка о доходах физического лица 2-НДФЛ", нажать в ней кнопки Заполнить и Записать. Если это не сделать, то при попытке подготовки отчета в ИМНС система станет ругаться "сведений о доходах сотрудника не обнаружено". Если сотрудников много, то задача довольно трудоемка. Поэтому делал точно так же. Перебирал программно сотрудников, по каждому делал
СписокПараметров=СоздатьОбъект("СпсиокЗначений");
СписокПараметров.Установить("Сотрудник",НужныйСотрудник);
СписокПараметров.Установить("Год",НужныйГодЧислом);
СписокПараметров.Установить("ЭтоПотоковоеЗаполнение",1);
ОткрытьФорму("Обработка.Форма1НДФЛ2009",СписокПараметров).
В ПриОткрытии() писал:
...
Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
Если Форма.Параметр.Получить("ЭтоПотоковоеЗаполнение")=1 Тогда
СтрокаТекущегоГода = СпЛет.НайтиЗначение(СписокПараметров.Получить("Год"))
СпЛет.ТекущаяСтрока(СтрокаТекущегоГода);
ПриВыбореГода();
Заполнить();
Сохранить();
СтатусВозврата(0); //это ответ на вопрос спрашивающего
КонецЕсли;
КонецЕсли;
КонецПроцедуры //ПриОткрытии
я угадал задачу?"
СписокПараметров=СоздатьОбъект("СпсиокЗначений");
СписокПараметров.Установить("Сотрудник",НужныйСотрудник);
СписокПараметров.Установить("Год",НужныйГодЧислом);
СписокПараметров.Установить("ЭтоПотоковоеЗаполнение",1);
ОткрытьФорму("Обработка.Форма1НДФЛ2009",СписокПараметров).
В ПриОткрытии() писал:
...
Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
Если Форма.Параметр.Получить("ЭтоПотоковоеЗаполнение")=1 Тогда
СтрокаТекущегоГода = СпЛет.НайтиЗначение(СписокПараметров.Получить("Год"))
СпЛет.ТекущаяСтрока(СтрокаТекущегоГода);
ПриВыбореГода();
Заполнить();
Сохранить();
СтатусВозврата(0); //это ответ на вопрос спрашивающего
КонецЕсли;
КонецЕсли;
КонецПроцедуры //ПриОткрытии
я угадал задачу?"
Читают тему
(гостей: 1)