непонятки при Программном создании документа РТУ

1. mentozavr 68 14.05.15 22:57 Сейчас в теме
Уважаемые коллеги. Конфа УПП 1.3. Программно создается документ РТУ, также записывается и проводится программно. И вот тут возникает вопрос.
1. Иногда при формировании и проведении документа проводок не появляется. после того как в документ ручкам перевыбрать к примеру договор и еще что нибудь то все ок.

Заранее спасибо
+
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Salavat 13 15.05.15 05:06 Сейчас в теме
(1) mentozavr, подозреваю - документ (тот, который якобы проводился) на самом деле и не проводился.
в журнале регистрации - есть запись (с ним)?
если есть, то - какая? и (если есть) - нужно в отладчике смотреть.
+
5. mentozavr 68 15.05.15 07:46 Сейчас в теме
(2) Salavat, есть все в норме
(3) ZergKRSK, да именно проводок
(4) Salavat, попробую спасибо.
+
6. ZergKRSK 129 15.05.15 08:44 Сейчас в теме
(5) mentozavr, может тупо не хватать остатка по Хозрасчетному на момент проведения Реализации... при этом проводок не будет, по остальным регистрам записи будут (если работать под полными правами).
+
7. MyPuK_OLD 15.05.15 08:54 Сейчас в теме
(6) ZergKRSK, тогда бы при обычном проведении проводки тоже не появлялись.
+
8. ZergKRSK 129 15.05.15 09:06 Сейчас в теме
(7) MyPuK_OLD, временной интервал между программным и ручным проведением не озвучен.
+
9. mentozavr 68 15.05.15 11:38 Сейчас в теме
(6) ZergKRSK, У меня РАУЗ на остатки я как понимаю он не обращает внимания
Тут просто мысля, я созадавая документ не записываю в форме. может он на этом циклится. и разницы нет создавая документ получая и не получая форму?
+
3. ZergKRSK 129 15.05.15 05:14 Сейчас в теме
(1) mentozavr, именно проводок нет? А по рег. накопления есть? Под полными правами программно создаете РТУ?
+
4. Salavat 13 15.05.15 06:28 Сейчас в теме
после того как в документ ручкам перевыбрать к примеру договор и еще что нибудь то все ок.
кстати да - это говорит о том, что при перевыборе (нередко и - при открытии, тоже) - реквизиты заполняются, которые и влияют на проведение.

самый простой способ найти разницу:
1. программно созданный (и - который непровёлся) док - скопировать. и, скопированный - провести (открыть, перевыбрать,..).
в стандарт/встроенной обработке Групповая обработка спр/док - выбрать эти два документа и сравнить их реквизиты (таб.поле на второй странице - выбрать отображение всех реквизитов).
для надёжности - и ТЧ документа, тоже сравнить, лучше.

всё. разницу - исправить в обработке.
+
10. k_vasil 15.05.15 12:07 Сейчас в теме
При пере выборе договора вручную подставляются счета учета, в первую очередь те, которые привязаны к договору, если таковых нету, то типовые для организации. Возможно при программном создании документа не используется типовой механизм заполнения, а написан свой, в котором не учтена данная особенность.
+
12. mentozavr 68 15.05.15 13:22 Сейчас в теме
(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");

				 КонецЦикла;
			 ДокПост.Комментарий = "Создан обработкой из базы Аренда";
			 
	 Сообщить("создан новый документ"+ДокПост.Номер);
	//Форма=ДокПост.ПолучитьФорму("ФормаДокумента");
//	ДокПост.Записать();
//	ДокПост.Записать(РежимЗаписиДокумента.Проведение);
	//ДокПост.Записать();	
	//Форма = ДокПост.ПолучитьФорму();
	//Форма.Открыть();
	 Попытка
		ДокПост.Записать(РежимЗаписиДокумента.Проведение);
	Исключение
		Сообщить(ОписаниеОшибки());
	конецпопытки;
	СтрокаТаблицы.Выбрано=ложь;

			КонецЦикла; 
			 
		 КонецПроцедуры

Показать
+
13. PetroP 15.05.15 13:51 Сейчас в теме
(12) mentozavr, в "ОбработкаЗаполнения" есть чего?
+
14. mentozavr 68 15.05.15 14:11 Сейчас в теме
(13) PetroP, ну стандартный набор
+
11. PetroP 15.05.15 12:20 Сейчас в теме
Надо смотреть все "ПриИзменении" и учитывать при программном заполнении.
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот