Доработка Диадок для 1С. Заполнение графы 5а в УПД (с 01.07.2021). Подключаемый модуль

0. 17 05.07.21 18:16 Сейчас в теме
С 1 июля 2021 года действует новая форма УПД, такое изменение принято постановлением №534 от 02.04.2021 г. Правительством Российской Федерации. В форме УПД в данной редакции появилась графа 5а. Мне так и не удалось разобраться - обязательна она к заполнению или нет - в типовой форме в 1С:Бухгалтерия она заполняется, а в Диадок - нет. И было бы пофиг, но некоторые наши клиенты отказались принимать УПД с прочерком в строке 5а. Служба поддержки Диадок сообщила, что заполнение - не является обязательным, доработка - платная, тикет - закрыт :)
Поэтому здесь Вы можете скачать Подключаемый модуль для Диадок, который заполняет графу 5а - Документы основания.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Tahallus 430 06.07.21 22:35 Сейчас в теме
Либо скачиваем последнюю версию модуля и будет заполнено все без Подключаемого модуля
2. rippi 14.07.21 11:46 Сейчас в теме
(1) Не все так просто, в Диадоке строка 5а заполняется в стандартном варианте без указания диапазона строк, бухи его требуют, потому все равно в модуль лезть приходится
3. lenwood 14.07.21 22:20 Сейчас в теме
(2) Я параметр "наимдокотгр" модифицировал (добавил приписку про номера строк перед номером документа). Там по идее несложно. Но вот вопрос - по идее эту нумерацию диадок должен сделать нормально, т.е. добавить в формат нормальный массив для перечисления строк по документам отгрузки. Как бы понять - будет он это делать или нет?
5. rippi 15.07.21 11:58 Сейчас в теме
(3) Подозреваю, что нет. Потому как передача ведется в формате ФНС, а в нем предусмотрены поля для наименования, номера и даты документа. На нецелевое использование полей (в частности номера документа), думаю, не пойдут
4. jarikuss 15.07.21 11:21 Сейчас в теме
(3) Можете кодом поделиться, пожалуйста? Получилось добиться выведения в печатную форму количества строк в самой обработке , но при открытии исходящего документа в кабинете КонтурДиадока количество строк не отображается.
6. lenwood 15.07.21 19:44 Сейчас в теме
(4) в подключаемом модуле в функции ПодготовитьЭлектронныйДокумент(Параметры) перехватываете переменную content после ее заполнения (это структура) и находите в ней массив documentshipments. Для случая, когда счет фактура выписывается на основании одной реализации, то там будет один элемент массива. В нем я изменяю поле "number", добавляя перед его значением следующее:
"п/п 1-" +@тут количество элементов в в массиве "items" 'той же структуры@ + " №"+
Dmitri93; +1 Ответить
8. jarikuss 16.07.21 12:45 Сейчас в теме
(6)
в подключаемом модуле в функции ПодготовитьЭлектронныйДокумент(Параметры)
у меня в подключаемом модуле нет такой функции(
7. jarikuss 16.07.21 11:56 Сейчас в теме
На УТ 10.3.66.2 обработка не добавляется, выходит ошибка
Прикрепленные файлы:
9. AlxPop 17 16.07.21 13:32 Сейчас в теме
(7) Надо смотреть что конкретно у Вас отличается от остальных. Могу подключиться посмотреть, напишите в личку свои контакты, я с Вами свяжусь
10. jarikuss 16.07.21 14:00 Сейчас в теме
(9)Не могу написать в личку. "Внесены изменения в функционал сообщений.
Пользователи не могут начинать общение в мессенджере (первыми писать пользователю, с которым ранее не общались), при следующих условиях:
- не имеют 20 одобренных сообщений на форуме и меньше 1$m на абонентном счёте;
- нет действующего абонемента. "
11. пользователь 16.07.21 14:16
Сообщение было скрыто модератором.
...
14. Serg_tvr 1 20.07.21 17:48 Сейчас в теме
(9) AlxPop, у Вас обработка написана в предположении, что используется старая обработка и данные для заполнения 5а отсутствуют?
Просто ниже код приведен для обычных форм, и там проверяется, что есть заполненные данные в DocumentShipments, и изменяется первый элемент коллекции. Вы же просто пишете DocumentShipments.Добавить(ДокОснование). Если у меня новая версия обработки, которая уже заполняет номер и дату документа не приведет ли это к конфликту?
16. AlxPop 17 21.07.21 10:57 Сейчас в теме
Обработка была написана не в предположении, а для той версии, которая была на тот момент. 5а там не заполнялось совсем, и у меня был ответ службы поддержки Диадока, что заполнение не является обязательным, доработка не планируется и т.д.
Да, после обновления нужно видимо сначала очистить DocumentShipments.
Добавил версию обработки.

Добавлена строка
Content.DocumentShipments.Очистить();
перед
Content.DocumentShipments.Добавить(ДокОснование);

Можно самостоятельно добавить и ничего не скачивать.
21. Serg_tvr 1 28.07.21 17:16 Сейчас в теме
(16)Что-то не так. У нас версия обработки 5.49.13.958. Добавил
Content.DocumentShipments.Очистить();
перед
Content.DocumentShipments.Добавить(ДокОснование);

В файле совсем пропал блок ДокПодтвОтгр. Если эту строку не добавлять, то в файл выгружается стандартный блок ДокПотвОтгр в виде

<ДокПодтвОтгр НаимДокОтгр="Реализация (акт, накладная, УПД)" НомДокОтгр="ЮБА0718007" ДатаДокОтгр="18.07.2021" />

хотя в модуль точно попадает. Пришлось вносить корректировку, так как там есть ошибка, связанная с тем, что счет-фактура может быть выписан на основании документа Реализация услуг по переработке, в котором нет табличной части Товары.
12. nkroshko 16.07.21 18:27 Сейчас в теме
(7)
Если это обработка для обычных форм, для УТ 10, то там подключаемые модули отличаются по составу методов.
Для УТ 10.3 мы используем обработку версии 5.42.10. Там я такие внес изменения:

Функция ОбработатьСобытиеДиадок(ИмяСобытия, Параметры, СтандартнаяОбработкаДиадок = Истина) Экспорт
	
	Если ИмяСобытия = "ПослеЗаполненияКонтента" Тогда    
		
		ОбработатьСобытиеПослеЗаполненияКонтента(Параметры);
		
	ИначеЕсли ИмяСобытия = "ПослеСозданияСчетФактуры" Тогда
		
		//ОбработатьСобытиеПослеСозданияСчетФактуры(Параметры);
		
	ИначеЕсли ИмяСобытия = "ПолучитьНоменклатуру1С" Тогда
		
		//Возврат ОбработатьСобытиеПолучитьНоменклатуру1С(Параметры);
		
	ИначеЕсли ИмяСобытия = "ПослеЗаполненияНовогоДокументаПоступления" Тогда
		
		//ОбработатьСобытиеПослеЗаполненияНовогоДокументаПоступления­(Параметры);
	
	ИначеЕсли ИмяСобытия = "ТорговыеСетиЗаполнитьПараметрыХраненияНомераАкта" Тогда
		
		//Возврат ОбработатьСобытиеТорговыеСетиЗаполнитьПараметрыХраненияНомер­аАкта(Параметры);
		
	ИначеЕсли ИмяСобытия = "ТорговыеСетиПослеПроверкиДокумента" Тогда
		
		//ОбработатьСобытиеТорговыеСетиПослеПроверкиДокумента(Параметры);
		
	ИначеЕсли ИмяСобытия = "ТорговыеСетиПослеСопоставленияДокумента" Тогда
		
		//ОбработатьСобытиеТорговыеСетиПослеСопоставленияДокумента(Параметры);
		
	ИначеЕсли ИмяСобытия = "ТорговыеСетиПослеВыполненияОбработкиДокумента" Тогда
		
		//ОбработатьСобытиеТорговыеСетиПослеВыполненияОбработкиДокум­ента(Параметры);
		
	ИначеЕсли ИмяСобытия = "ПередОтправкойPackageSendTask" Тогда
		
		//ОбработатьСобытиеПередОтправкойPackageSendTask(Параметры);
		
	ИначеЕсли ИмяСобытия = "ПередОбновлениемСпискаДокументовДляСопоставленияСНакладной"­ Тогда
		
		//ОбработатьСобытиеПередОбновлениемСпискаДокументовДляСопост­авленияСНакладной(Параметры);
		
	ИначеЕсли ИмяСобытия = "ДанныеДляКонтента_ТабличнаяЧасть" Тогда
		
		//ОбработатьСобытие_ДанныеДляКонтента_ТабличнаяЧасть(Параметры, СтандартнаяОбработкаДиадок);
		
	ИначеЕсли ИмяСобытия = "ПослеОтправкиДокумента" Тогда
		
		//ОбработатьСобытие_ПослеОтправкиДокумента(Параметры);
		
	ИначеЕсли ИмяСобытия = "ПослеОбновленияСпискаДокументов" Тогда
		
		//ОбработатьСобытие_ПослеОбновленияСпискаДокументов(Параметры);
		
	ИначеЕсли ИмяСобытия = "ПриОткрытииФормы" Тогда
		
		//ОбработатьСобытие_ПриОткрытииФормы(Параметры);
		
	ИначеЕсли ИмяСобытия = "ПодключаемаяКоманда" Тогда
		
		//ОбработатьСобытие_ПодключаемаяКоманда(Параметры);
		
	ИначеЕсли ИмяСобытия = "ПослеПолученияТаблицыДокументовДляОтправки" Тогда
		
		//ОбработатьСобытие_ПослеПолученияТаблицыДокументовДляОтправ­ки(Параметры);
		
	КонецЕсли;
	
КонецФункции


// Позволяет дополнить/изменить контент электронного документа
// перед его отправкой.
//
// Параметры
//  Параметры - Структура - Содержит коллекцию, переданных параметров:
//    * ТипКонтента		 - Строка - идентификатор типа контента (см. ТипыКонтента());
//    * Content			 - Структура - Протоконтент исходящего документа;
//    * ДокументСсылка	 - ЛюбаяСсылка - Ссылка на документ информационной базы, по которому собирается протоконтент;
//    * DocumentType	 - Строка - (Устарел) Позволяет определить тип протоструктуры.
//                                  Параметр сохранен для обратной совместимости с ПМ версии 1.1 или ниже.
//                                  Рекомендуется вместо него ориентироваться на ТипКонтента.
//
Процедура ОбработатьСобытиеПослеЗаполненияКонтента(Параметры)
	
	ТипыКонтента = ТипыКонтента();
	
	СсылкаНаДокумент = Параметры.ДокументСсылка;
	Протоконтент	 = Параметры.Content;
	ТипКонтента		 = Параметры.ТипКонтента;
	
	Если ТипКонтента = ТипыКонтента.Utd820SellerContent Тогда
		
		//ПримерОбработкиУПД820(СсылкаНаДокумент, Протоконтент);
		ДокументыОтгрузки = Протоконтент.DocumentShipments;
		Если ДокументыОтгрузки.Количество() = 1 Тогда
			СтрДокументаОтгрузки = ДокументыОтгрузки[0];
			КоличествоСтрок = Протоконтент.Table.Items.Количество();
			СтрДокументаОтгрузки.Number = " п/п " + ?(КоличествоСтрок=1, "1", "1 - "+КоличествоСтрок) +" № "+ СтрДокументаОтгрузки.Number;
		КонецЕсли;
		
	ИначеЕсли ТипКонтента = ТипыКонтента.UtdSellerContent Тогда
		
		//ПримерОбработкиУПД155(СсылкаНаДокумент, Протоконтент);
		
	ИначеЕсли ТипКонтента = ТипыКонтента.Torg12SellerContent Тогда
		
		//ПримерОбработкиНакладной172(СсылкаНаДокумент, Протоконтент);
		
	ИначеЕсли ТипКонтента = ТипыКонтента.AcceptanceCertificateSellerContent Тогда
		
		//ПримерОбработкиАкта172(СсылкаНаДокумент, Протоконтент);
		
	КонецЕсли;
	
КонецПроцедуры
Показать
espero; maxpower; shiaju; SalaSilaS; +4 Ответить
13. jarikuss 19.07.21 15:31 Сейчас в теме
(12) Огромное-преогромное спасибо! Это именно то, что надо было! Теперь строка 5а заполняется так, как требуется.
23. k0d1k 29.07.21 13:44 Сейчас в теме
(12) Подскажите, пожалуйста, в каком модуле находится функция "ОбработатьСобытиеДиадок"?
24. SalaSilaS 29.07.21 15:28 Сейчас в теме
15. progaoff 20.07.21 18:45 Сейчас в теме
Ребят, подскажите как заполнить ТЕГ СведПрослеж. Буду очень благодарен.
17. marry88 26.07.21 14:52 Сейчас в теме
Добрый день, подскажите пожалуйста где можно взять обработку версии 5.42.10? Для УТ 10.3.
19. AlxPop 17 28.07.21 12:23 Сейчас в теме
(17) Вот тремя постами выше nkroshro выкладывал текст для ут10. Может у него и обработка целиком есть?
25. nkroshko 29.07.21 17:39 Сейчас в теме
(19) Обработку Диадока для УТ10.3 можно здесь скачать: https://www.diadoc.ru/1C-OF
А процедура "ОбработатьСобытиеДиадок" находится в подключаемом модуле обработки Диадок. Чтобы получить подключаемый модуль надо запустить обработку Диадок, перейти на закладку "Настройка" - "Подключаемый модуль" и выгрузить его по кнопке "Сохранить шаблон подключаемого модуля на диск". В нем и надо внести исправления. А затем включить подключить этот модуль на этой же закладке любым доступным способом
18. user1470306 27.07.21 19:11 Сейчас в теме
Добрый день, не подскажите такая вот беда. Модуль добавил все встало ок, и когда я выбираю документ для отправки мне показывает форму УПД с документом основания, все как надо. Но после нажатия кнопки подписать и отправить в отправленных появляется документ с формой УПД в которой в графе Документ отгрузки (5а) стоит прочерк. Как решить проблему?
20. AlxPop 17 28.07.21 12:30 Сейчас в теме
(18) Точно прочерк в графе 5а, а не 5? У меня прочерк стоит в графе 5, это нормально, а графа 5а заполнена, версия Диадок 5.49.13.958.
22. Serg_tvr 1 28.07.21 17:42 Сейчас в теме
(18) Я в (21) описал аналогичную ситуацию. Тоже после доработки, рекомендованной автором, в файле пропадает блок ДокПодтвОтгр
26. itoptimum 19 09.08.21 13:23 Сейчас в теме
допмодуль диадока проще доработать самому следующим образом:
Процедура ОбработатьСобытиеПослеЗаполненияКонтента(Параметры)
ТипыКонтента = ТипыКонтента();

СсылкаНаДокумент = Параметры.ДокументСсылка;
Протоконтент = Параметры.Content;
ТипКонтента = Параметры.ТипКонтента;

/////////////////////////////////
Если ТипКонтента = ТипыКонтента.Utd820SellerContent Тогда
Если Протоконтент.Function = "Invoice" ИЛИ Протоконтент.Function = "InvoiceAndBasic" Тогда
ОсновнойДокумент = СсылкаНаДокумент.ДокументОснование;
ИначеЕсли Протоконтент.Function = "Basic" Тогда
ОсновнойДокумент = СсылкаНаДокумент;
КонецЕсли;
Если Протоконтент.Function = "Invoice" Тогда
// пока Диадок не реализовал п/п для РЖД, добавляем сами
КоличествоСтрок = ОсновнойДокумент.Товары.Количество();
Если КоличествоСтрок=0 Тогда
КоличествоСтрок = ОсновнойДокумент.Услуги.Количество();
КонецЕсли;
ДокПодтвОтгр = " п/п " + ?(КоличествоСтрок>1,"1-","") + Строка(КоличествоСтрок) + " № ";
Протоконтент.DocumentShipments[0].Number = ДокПодтвОтгр+Протоконтент.DocumentShipments[0].Number;
КонецЕсли;
Показать

в этом духе...
27. Nadezhda_1 12.08.21 14:19 Сейчас в теме
(26)Добрый день.
Прописала в подключаемом модуле в Функции ОбработатьСобытиеПослеЗаполненияКонтента(Параметры):
ТипыКонтента = ТипыКонтента();

	DocumentType 	= Параметры.DocumentType;
	Content 		= Параметры.Content;
	ДокументСсылка 	= Параметры.ДокументСсылка;
	ТипКонтента		 = Параметры.ТипКонтента;
		
	Если ТипКонтента = ТипыКонтента.Utd820SellerContent Тогда
Если Content.Function = "Invoice" ИЛИ Content.Function = "InvoiceAndBasic" Тогда
			
			ДокПодтвОтгр = Новый ТаблицаЗначений;
			ДокПодтвОтгр.Колонки.Добавить("Name");
			ДокПодтвОтгр.Колонки.Добавить("Number");
			ДокПодтвОтгр.Колонки.Добавить("Date");
			Стр = ДокПодтвОтгр.Добавить();
			КоличествоСтрок = Строка(ДокументСсылка.ДокументОснование.Товары.Количество());
			Стр.Number = " п/п " + "1-"+ КоличествоСтрок + " " +"№ "+ ДокументСсылка.ДокументОснование.Номер;
			Стр.Date = ДокументСсылка.ДокументОснование.Дата;
			Стр.Name = "ДокПодтвОтгр";
			Content.DocumentShipments = ДокПодтвОтгр;
			Content.Добавить("DocumentShipments",ДокПодтвОтгр);
		КонецЕсли;
Показать

Не работает(
Что не так делаю?
28. itoptimum 19 13.08.21 07:28 Сейчас в теме
(27) добавьте допмодуль в расширение или конфигурацию, подключите допмодуль из добавленного места в диадок, поставьте точку отладки, проверите, что получается. в принципе в таком виде и в erp и в бп работает. всю функцию допмодуля я конечно не приводил, попробуйте сохранить шаблон допмодуля из диадока, посмотрите, что там еще есть, если у вас ранее допмодуль не использовался.
29. Nadezhda_1 13.08.21 07:36 Сейчас в теме
(28)Спасибо, что ответили.
Уже есть подключаемый модуль и используется, в него добавила этот кусок программы и почему-то не работает.
Сомневаюсь насчет строки: Content.Добавить("DocumentShipments",ДокПодтвОтгр); - ни с ней, ни без нее не работает.
30. itoptimum 19 13.08.21 07:53 Сейчас в теме
(29) да, у меня в примере этого нет. DocumentShipments уже там есть, и в api диадока это вроде как массив, а не тз. при отладке хорошо видно. отсюда пример с добавлением некорректен, тоже где-то его видел, и приводит к ошибкам передачи мутабельных значений, кстати. не получится самостоятельно, отпишите мыло, скину наш, но там много лишнего и ненужного вам.
31. пользователь 13.08.21 09:03
Сообщение было скрыто модератором.
...
32. Nadezhda_1 13.08.21 10:57 Сейчас в теме
(31)Эл.адрес: Nadezhdam71@mail.ru
itoptimum; +1 Ответить
33. пользователь 13.08.21 12:34
Сообщение было скрыто модератором.
...
34. espero 20 27.08.21 11:10 Сейчас в теме
Автор,
КолВоСтрок = ДокументСсылка.ДокументОснование.Товары.Количество();
А если в документе-основании помимо товаров есть Услуги, Агентские услуги или нету товаров, но есть многое количество услуг?
Я у себя подправил, но и Вам рекомендую обратить на это внимание.
35. koloboc74 83 23.09.21 12:45 Сейчас в теме
Есть модуль но только от Диадок Про , как внести изменения и куда для заполнения 5а ... Я так понял надо дописать в Функция ПодготовитьЭлектронныйДокумент(Параметры)
36. tolick 35 06.10.21 17:13 Сейчас в теме
(35)
Да, там, сразу после строки:
Content = ОсновнойМодуль.ТиповойМодуль_ПолучитьКонтент(ТиповойМодуль, РежимУправляемыхФорм, Документ1С, ТипКонтента_XDTO, ДополнительныеПараметры);

тут это будет соответственно:
Content.DocumentShipments[0].Number и Content.Table.Items.Количество()

у нас с такими изменениями заработало. версия 4.7.0
37. user1679768 12.10.21 15:06 Сейчас в теме
Подскажите, пожалуйста, на Бухгалтерия предприятия, редакция 2.0 с диадок версии 5_44_01 будет работать?
Оставьте свое сообщение
Вопросы с вознаграждением
Вакансии
Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Программист 1С
Хабаровск
зарплата от 130 000 руб. до 160 000 руб.
Полный день

Программист 1С
Москва
зарплата от 140 000 руб. до 180 000 руб.
Полный день

Специалист техподдержки 1С
Тюмень
зарплата от 100 000 руб.
Полный день

Программист-аналитик 1С:Управление автотранспортом
Тюмень
зарплата от 100 000 руб.
Полный день