Программное заполнение ТЧ документа СверкаВзаиморасчетов
Всем привет!
Пишу процедуру для выгрузки в EXCEL Сверки с контрагентом, и есть у меня условие, если за текущий день нет сверки по контрагенту, то создать новую сверку.
Создать сам документ это совсем не сложно, но вот как заставить документ заполниться данными по взаиморасчетам.... НЕПОНИМАЮ....
Зашел в модуль посмотрел что там есть.
нашел:
Документы.СверкаВзаиморасчетов.ЗаполнитьДанныеПоРасчетам(ДокументОбъект);
Но не отрабатывает...
Пишу процедуру для выгрузки в EXCEL Сверки с контрагентом, и есть у меня условие, если за текущий день нет сверки по контрагенту, то создать новую сверку.
Создать сам документ это совсем не сложно, но вот как заставить документ заполниться данными по взаиморасчетам.... НЕПОНИМАЮ....
Зашел в модуль посмотрел что там есть.
нашел:
Документы.СверкаВзаиморасчетов.ЗаполнитьДанныеПоРасчетам(ДокументОбъект);
Но не отрабатывает...
По теме из базы знаний
Найденные решения
Ну вот и ошибка
Документ.Записать(РежимЗаписиДокумента.Запись);//Зачем записывать документ перед заполнением?
//Документ уже и есть объект и его получать не нужно
Документы.СверкаВзаиморасчетов.ЗаполнитьДанныеПоРасчетам(Документ);//Так правильно
Документ.Записать(РежимЗаписиДокумента.Проведение);
А до этого Вы получали по ссылке новый объект
То есть
Документ - это объект1
Документ.Ссылка.ПолучитьОбъект() - вы получаете второй экземпляр объекта по ссылке, который записан в базу данных объект2
Заполняете объект2, после чего записываете объект1, который был не заполнен.
Все отрабатывается, но вызывается и записывается не корректно.
То есть
Документ - это объект1
Документ.Ссылка.ПолучитьОбъект() - вы получаете второй экземпляр объекта по ссылке, который записан в базу данных объект2
Заполняете объект2, после чего записываете объект1, который был не заполнен.
Все отрабатывается, но вызывается и записывается не корректно.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) В модуль чего? Формы или документа?
В зависимости от конфигурации, процедуры могут располагаться в модуле формы документа, в модуле объекта (в модуле формы будет вызов модуля объекта) и в общих модулях (вызов так же будет в модуле формы).
Вообщем открывайте конфигуратор и на форме смотрите кнопку заполнения документа.
В зависимости от конфигурации, процедуры могут располагаться в модуле формы документа, в модуле объекта (в модуле формы будет вызов модуля объекта) и в общих модулях (вызов так же будет в модуле формы).
Вообщем открывайте конфигуратор и на форме смотрите кнопку заполнения документа.
(2)
Я выше написал вот это:
Это отрабатывает если пишу во внешней обработке, и выбираю уже созданный документ...
Но в процедуре создания документа, почему-то не отрабатывает....
Не могу понять почему....
Я выше написал вот это:
Документы.СверкаВзаиморасчетов.ЗаполнитьДанныеПоРасчетам(ДокументОбъект);
Это отрабатывает если пишу во внешней обработке, и выбираю уже созданный документ...
Но в процедуре создания документа, почему-то не отрабатывает....
Не могу понять почему....
(4)
Я думаю, что т.к. все отработало в обработке заполнения СУЩЕСТВУЮЩЕГО документа, проблема у меня именно с получением объекта...
Документ = Документы.СверкаВзаиморасчетов.СоздатьДокумент();
Документ.Дата = ТекущаяДата();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КонтрагентыКонтактнаяИнформация.Ссылка КАК Контрагент
|ИЗ
| Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
|ГДЕ
| КонтрагентыКонтактнаяИнформация.НомерТелефона = &НомерТелефона";
Запрос.УстановитьПараметр("НомерТелефона", СтрЗаменить(НомерТелефона.НастройкаПользователя1,"+",""));
РезультатЗап = Запрос.Выполнить();
Выборка = РезультатЗап.Выбрать();
Если Выборка.Следующий() тогда
Документ.Контрагент = Выборка.Контрагент;
КонецЕсли;
Документ.Организация = Справочники.Организации.НайтиПоНаименованию("Металл-Сервис", ИСТИНА);
Документ.НачалоПериода = НачалоГода(ТекущаяДата());
Документ.КонецПериода = ТекущаяДата();
Документ.Статус = Перечисления.СтатусыСверокВзаиморасчетов.Создана;
Документ.ОтветственноеЛицо = Пользователи.ТекущийПользователь();
Документ.Записать(РежимЗаписиДокумента.Запись);
Документы.СверкаВзаиморасчетов.ЗаполнитьДанныеПоРасчетам(Документ.Ссылка.ПолучитьОбъект());
Документ.Записать(РежимЗаписиДокумента.Проведение);
ПоказатьЯ думаю, что т.к. все отработало в обработке заполнения СУЩЕСТВУЮЩЕГО документа, проблема у меня именно с получением объекта...
Ну вот и ошибка
Документ.Записать(РежимЗаписиДокумента.Запись);//Зачем записывать документ перед заполнением?
//Документ уже и есть объект и его получать не нужно
Документы.СверкаВзаиморасчетов.ЗаполнитьДанныеПоРасчетам(Документ);//Так правильно
Документ.Записать(РежимЗаписиДокумента.Проведение);
А до этого Вы получали по ссылке новый объект
То есть
Документ - это объект1
Документ.Ссылка.ПолучитьОбъект() - вы получаете второй экземпляр объекта по ссылке, который записан в базу данных объект2
Заполняете объект2, после чего записываете объект1, который был не заполнен.
Все отрабатывается, но вызывается и записывается не корректно.
То есть
Документ - это объект1
Документ.Ссылка.ПолучитьОбъект() - вы получаете второй экземпляр объекта по ссылке, который записан в базу данных объект2
Заполняете объект2, после чего записываете объект1, который был не заполнен.
Все отрабатывается, но вызывается и записывается не корректно.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот