непонятки при Программном создании документа РТУ
Уважаемые коллеги. Конфа УПП 1.3. Программно создается документ РТУ, также записывается и проводится программно. И вот тут возникает вопрос.
1. Иногда при формировании и проведении документа проводок не появляется. после того как в документ ручкам перевыбрать к примеру договор и еще что нибудь то все ок.
Заранее спасибо
1. Иногда при формировании и проведении документа проводок не появляется. после того как в документ ручкам перевыбрать к примеру договор и еще что нибудь то все ок.
Заранее спасибо
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
после того как в документ ручкам перевыбрать к примеру договор и еще что нибудь то все ок.
кстати да - это говорит о том, что при перевыборе (нередко и - при открытии, тоже) - реквизиты заполняются, которые и влияют на проведение.
самый простой способ найти разницу:
1. программно созданный (и - который непровёлся) док - скопировать. и, скопированный - провести (открыть, перевыбрать,..).
в стандарт/встроенной обработке Групповая обработка спр/док - выбрать эти два документа и сравнить их реквизиты (таб.поле на второй странице - выбрать отображение всех реквизитов).
для надёжности - и ТЧ документа, тоже сравнить, лучше.
всё. разницу - исправить в обработке.
При пере выборе договора вручную подставляются счета учета, в первую очередь те, которые привязаны к договору, если таковых нету, то типовые для организации. Возможно при программном создании документа не используется типовой механизм заполнения, а написан свой, в котором не учтена данная особенность.
(10) k_vasil, в том то и дело что не только договор а любой элемент перевыбрать. а обработка создания таковая
Процедура КнопкаВыполнитьНажатие(Кнопка)
НомерСтроки=0;
/////**17.04.2014 ВВедеена проверка на заполненность///
Режим = РежимДиалогаВопрос.ДаНет;
Ответ = Вопрос("Данные проверены и вы хотите продолжить создание документов?", Режим, 0);
Если Ответ = КодВозвратаДиалога.Нет Тогда
Возврат;
КонецЕсли;
Для каждого СтрокаТ из ТабличноеПоле1 цикл
Если СтрокаТ.ДоговорКонтрагентаУПП.Пустая() тогда
НомерСтроки=НомерСтроки+1;
Сообщить("У контрагента "+СтрокаТ.Контрагент+" строка "+НомерСтроки+" не указан договор, в целях корректности нанных документ выгружен не будет");
СтрокаТ.Выбрано=Ложь;
КонецЕсли;
КонецЦикла;
/////**17.04.2014 ВВедеена проверка на заполненность///
если ТабличноеПоле1.Количество()=0 тогда
возврат;
КонецЕсли;
СпрВал = Справочники.Валюты;
Валюта = СпрВал.НайтиПоНаименованию("руб.",Истина);
//ДокПост = Документы.ПоступлениеНаРасчетныйСчет.СоздатьДокумент();
//ДокПост.ВидОперации=Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ОплатаПокупателя;
для Каждого СтрокаТаблицы из ТабличноеПоле1 цикл
Если СтрокаТаблицы.выбрано=ложь тогда
Продолжить;
КонецЕсли;
///получаем ссылку на документ
Документ=СтрокаТаблицы.СсылкаДок;
////****
ДокПост = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
Сообщить("Обрабатываем документ №"+СтрокаТаблицы.НомерДокумента);
ДокПост.ВидОперации=Перечисления.ВидыОперацийРеализацияТоваров.ПродажаКомиссия;
ДокПост.Номер = "К"+СтрокаТаблицы.НомерДокумента;
ДокПост.Дата = СтрокаТаблицы.ДатаДокумента;
ДокПост.ВалютаДокумента = Валюта;
ДокПост.УчитыватьНДС=Истина;
ДокПост.СуммаВключаетНДС=Истина;
ДокПост.КурсВзаиморасчетов=1;
ДокПост.КратностьВзаиморасчетов=1;
ДокПост.ВидПередачи=Перечисления.ВидыПередачиТоваров.СоСклада;
ДокПост.Склад=Справочники.Склады.НайтиПоНаименованию("Склад Главный",истина);
ДокПост.Организация = Справочники.Организации.НайтиПоКоду("000000001");
//ДокПост.
//ДокПост.СуммаДокумента = СтрокаТаблицы.СуммаДокумента;
//РасПлат = ДокПост.РасшифровкаПлатежа.Добавить();
//РасПлат.СуммаПлатежа = СтрокаТаблицы.СуммаДокумента;
//РасПлат.СтавкаНДС = Перечисления.СтавкиНДС.НДС18;
//Расплат.СуммаНДС = СтрокаТаблицы.СуммаДокумента*18/100;
ДокПост.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01");
ДокПост.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02");
ДокПост.ОтражатьВБухгалтерскомУчете=Истина;
ДокПост.ОтражатьВНалоговомУчете=Истина;
ДокПост.ОтражатьВУправленческомУчете=Истина;
//Расплат.СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.Автоматически;
//РасПлат.ДоговорКонтрагента=Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(,,,Контраг);
ИНН = СокрЛП(СтрокаТаблицы.ИНН);
СтрокаКонтрагент = СокрЛП(СтрокаТаблицы.Контрагент);
ДокПост.Контрагент = НайтиКонтрагент(ИНН,СтрокаКонтрагент);
Родитель1=Справочники.Контрагенты.НайтиПоНаименованию("АРЕНДАТОРЫ",истина);
Контраг=Справочники.Контрагенты.НайтиПоРеквизиту("ИНН",ИНН,Родитель1);
//ДогКонтр= Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(,,,Контраг);
//Если ДогКонтр.Пустая() тогда
// ДокПост.ДоговорКонтрагента=СоздатьДоговор("Основной договор",Контраг);
//конецЕсли;
// ДокПост.ДоговорКонтрагента=Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(,,,Контраг);
// ДокПост.Организация = Справочники.Организации.НайтиПоКоду("000000001");
///ДокПост.СчетОрганизации = Справочники.БанковскиеСчета.НайтиПоКоду("000000005");
//ДокПост.СчетБанк = ПланыСчетов.Хозрасчетный.НайтиПоКоду("51");
ДокПост.ДоговорКонтрагента=СтрокаТаблицы.ДоговорКонтрагентаУПП.Ссылка;
//Для каждого Строка1 из Документ.Услуги цикл
Для каждого Строка1 из Документ.Услуги цикл
ДокПост1=ДокПост.Услуги.Добавить();
ДокПост1.Номенклатура=Справочники.Номенклатура.НайтиПоНаименованию(Строка1.Номенклатура.Description);
ДокПост1.Содержание=Строка1.Содержание;
ДокПост1.Количество=ОКР(Строка1.Количество);
ДокПост1.Сумма=ОКР(Строка1.Сумма);
ДокПост1.СтавкаНДС=Перечисления.СтавкиНДС.НДС18;
//ДокПост1.СуммаНДС=Строка1.Сумма*18/100;
ДокПост1.СуммаНДС=ОКР(Строка1.СуммаНДС,2);
ДокПост1.Цена=ОКР(Строка1.Цена);
//трокаРТУ.СчетУчетаБУ=ПланыСчетов.Хозрасчетный.НайтиПоКоду("43");
ДокПост1.СчетДоходовБУ=ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.1");
Если Строка1.Субконто.Description="" тогда
ДокПост1.СубконтоБУ=Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Аренда торгового зала");
ДокПост1.СубконтоНУ=Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Аренда торгового зала");
Иначе
ДокПост1.СубконтоБУ=Справочники.НоменклатурныеГруппы.НайтиПоНаименованию(Строка1.Субконто.Description,истина);
ДокПост1.СубконтоНУ=Справочники.НоменклатурныеГруппы.НайтиПоНаименованию(Строка1.Субконто.Description,истина);
КонецЕсли;
//ДокПост1.СубконтоБУ=Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Аренда торгового зала");
ДокПост1.СчетРасходовБУ=ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1");
//ДокПост1.СубконтоНУ=Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Аренда торгового зала");
ДокПост1.СчетРасходовНУ=ПланыСчетов.Налоговый.НайтиПоКоду("90.02");
ДокПост1.СчетДоходовНУ=ПланыСчетов.Налоговый.НайтиПоКоду("90.01.1");
КонецЦикла;
ДокПост.Комментарий = "Создан обработкой из базы Аренда";
Сообщить("создан новый документ"+ДокПост.Номер);
//Форма=ДокПост.ПолучитьФорму("ФормаДокумента");
// ДокПост.Записать();
// ДокПост.Записать(РежимЗаписиДокумента.Проведение);
//ДокПост.Записать();
//Форма = ДокПост.ПолучитьФорму();
//Форма.Открыть();
Попытка
ДокПост.Записать(РежимЗаписиДокумента.Проведение);
Исключение
Сообщить(ОписаниеОшибки());
конецпопытки;
СтрокаТаблицы.Выбрано=ложь;
КонецЦикла;
КонецПроцедуры
Показать
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот