Диадок. Подключаемый модуль. Отладка

17.06.20

Интеграция - WEB-интеграция

Небольшой пример, как работать с подключаемым модулем Диадок (для изменения УПД перед выгрузкой на сайт Диадок.). Отладка подключаемого модуля, если не смогли подключить стандартную отладку.

В обработке Диадок переходим в настройки. Нажимаем на кнопку "сохранить шаблон подключаемого модуля на диск" (лучше заранее сохранить пустую обработку и ее выбрать). Путь к файлу  я делаю через сетевую папку.

 

 

Получаем обработку шаблон. 

 

 

Переходим в модуль обработки. Нас интересует функция ОбработкаСобытияПодключаегогоМодуля()

А в ней нужно разкомментировать событие ПослеОбновленияКонтента

 

 

тип контента Utd820SellerContent это УПД. В УПД как правило я больше всего вношу изменеий перед отправкой.

 

 

Столкнулся с проблемой невозможности подключить отладку в данном модуле.

Поэтому допилим костыль сохраним в текстовый файл Структуру Параметры.Content

 

 

 

 

ТекстПротоконтент = ЗначениеВСтрокуВнутр(Протоконтент);
Текст = Новый ЗаписьТекста;
Текст.Открыть("\\Server\1c\Протоконтент.txt",КодировкаТекста.ANSI);
Текст.ЗаписатьСтроку(ТекстПротоконтент);
Текст.Закрыть();

 

А потом в другой обработке в отладчике уже посмотрим содержимое этой структуры. В этой структуре и нужно менять данные. Чтобы УПД на сайт Диадока выгрузилась в измененном виде.

 

 

&НаСервере
Процедура Команда1НаСервере()
	
	Текст = Новый ТекстовыйДокумент;
	
	ПолноеИмяФайла = "\\server\1с\Протоконтент.txt";
	Текст.Прочитать(ПолноеИмяФайла);
	
	ТекСтрока1 = "";
	КоличествоСтрок = Текст.КоличествоСтрок();
	Для Счетчик = 1 по КоличествоСтрок Цикл
		ТекСтрока = Текст.ПолучитьСтроку(Счетчик);
		ТекСтрока1 = ТекСтрока1 + ТекСтрока;
	КонецЦикла;   
	Протоконтент = ЗначениеИзСтрокиВнутр(ТекСтрока1);
	
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
	Команда1НаСервере();
КонецПроцедуры

 

 
 Полный текст модуля обработки. Шаблон подключаемого модуля

 

Тестировал: 

1С:Комплексная автоматизация 2 (2.4.9.98)

Платформа 1С:Предприятие 8.3 (8.3.16.1148)

Диадок. Подключаемый модуль Отладка

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    15745    10    17    

11

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17548    6    15    

13

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16358    42    49    

23

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25737    9    0    

7

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    88579    160    215    

318
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. login1020 133 22.06.20 12:38 Сейчас в теме
Их обработка неудобна для отладки (пользуемся PRO версией, а все доп объекты интегрированы в базу), т.к. постоянно вызывается разные методы из макетов, каждый из которых представляет собой внешнюю обработку. Да и вклиниваться на уровне сбора данных мне тоже не хотелось, уж больно длинную цепочку потом прослеживать.

Тогда я просто вклинился в эту процедуру в модуле объекта обработки:
ЭДО_ДокументМенеджер_ПодготовитьИДобавитьДокументВПакет
и уже там напрямую добавлю/заполняю те поля, которых мне не хватает для отправки УПД.
А выклинился в нее т.к. это уже конечный результат сборки документа непосредственно перед самой отправкой.
RustIG; shard; wowik; +3 Ответить
19. unknown181538 151 11.07.22 13:41 Сейчас в теме
(1) вот сейчас задался вопросом, как интегрировать обработки из макетов в базу.... В старой версии хотя бы основной модуль в базе был, а теперь еще обертку поверх сделали в универсальном...
А встроенность в базу - это свойство PRO версии? Или вы переделали как-то?
ЭДО_ДокументМенеджер_ПодготовитьИДобавитьДокументВПакет - это тоже не на все случаи жизни. Например, мне нужно обращаться к строке по идентификатору...
2. Максим-777 55 20.10.20 13:00 Сейчас в теме
Кстати, если поставить в настройках обработки флаг откладки (Шестеренка - Настройки - Сервисные функции - Режим отладки), то обработка перед получением модулей из макетов будет искать их в директории libs, рядом с файлом обработки диадок про. В эту папку нужно будет посохранять модули из макетов в одноименные файлы. После этого можно будет проваливаться в эти модули в режиме отладки.
RustIG; COMPER; +2 Ответить
3. John_d 5277 20.10.20 14:44 Сейчас в теме
(2) Может напишете статью об этом? скиньте потом ссылку сюда
4. Максим-777 55 20.10.20 15:51 Сейчас в теме
Конечно, на днях набросаю инструкцию в картинках. Сейчас как раз интегрируемся, сам долго не мог понять как они там у себя отлаживают, пока не наткнулся в модулях на эту особенность))
(3)
7. Максим-777 55 30.10.20 15:54 Сейчас в теме
8. John_d 5277 30.10.20 16:21 Сейчас в теме
(7) я первый звездочку поставил)
17. mulder242 3 27.09.21 09:21 Сейчас в теме
При каком действии срабатывает данный подключаемый модуль, при отправке? Если не сложно, напишите, пожалуйста, наименование ключей структуры отвечающих за строку 5а
5. ovasiliev 6 30.10.20 14:55 Сейчас в теме
Как-то дошёл в их модуле до момента, где они подтягивают свои xml-схемы, и бросил это дело, так как не было уверенности, что на своём сервере они не принимают файлы по своим же форматам, и что изменённый xml пройдёт.
Нет с этим проблем?
6. John_d 5277 30.10.20 15:15 Сейчас в теме
(5) Смело можете менять данные в структуре(последний скриншот). Постоянно так делаю.
9. Gh0st 16.02.21 14:04 Сейчас в теме
У кого-то работают в версии Про события из ТиповойМодульДиадокУФ в подключаемом модуле? Посмотрел в отладчике подключаемый модуль отключен , кэш не доступен в контексте этой обработки.
10. Gh0st 16.02.21 15:40 Сейчас в теме
(9) Разобрался и решил проблемы с дополнением данных контента в событии ПодготовитьЭлектронныйДокумент. Оно вызывается дважды до стандартного заполнения и после него. Параметры.Свойство("Результат_ИМ") указывает, что результат заполнен. Но вызов событий из ТиповойМодульДиадокУФ и вложенных модулей хотелось бы реализовать. Надо переопределить текст запроса данных из РТУ. Пока решил изменением встроенного модуля, но в Диадок стандарт это решал добавлением вызова ПМ и из него передавал текст запроса.
11. yudinvs 2 21.06.21 12:55 Сейчас в теме
Коллеги, кто может подсказать в каком виде модулю нужно передавать коды маркировки для УКД? Нужен пример подготовки массива с кодами. По УПД все хорошо, но с УКД не понятно. Или если это где то описано то где?
12. VanoZZZ 15.07.21 07:42 Сейчас в теме
(11) Получилось указать коды маркировки в УКД?
Там есть поля
OriginalItemIdentificationNumbers
CorrectedItemIdentificationNumbers
Заполняю по аналогии с УПД, но маркировка все равно не уходит
13. VanoZZZ 15.07.21 10:52 Сейчас в теме
(11) вот так у меня заработало
ВыборкаПоНоменклатуре=ОбщаяВыборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
			Пока ВыборкаПоНоменклатуре.Следующий() Цикл
				НайденноеЗначение=Контент.InvoiceCorrectionTable.Items.Найти(ВыборкаПоНоменклатуре.Номенклатура);	
				Если НайденноеЗначение<>Неопределено Тогда
					Выборка=ВыборкаПоНоменклатуре.Выбрать();
					СтруктураСтрокиМаркировкиДо = Новый Структура;
					СтруктураСтрокиМаркировкиДо.Вставить("TransPackageId");
					СтруктураСтрокиМаркировкиДо.Вставить("Units"		, Новый Массив);
					СтруктураСтрокиМаркировкиДо.Вставить("PackageIds"	, Новый Массив);
					СтруктураСтрокиМаркировкиПосле = Новый Структура;
					СтруктураСтрокиМаркировкиПосле.Вставить("TransPackageId");
					СтруктураСтрокиМаркировкиПосле.Вставить("Units"		, Новый Массив);
					СтруктураСтрокиМаркировкиПосле.Вставить("PackageIds"	, Новый Массив);
					Пока Выборка.Следующий() Цикл
						Если ЗначениеЗаполнено(Выборка.КодРеализации) Тогда
							СтруктураСтрокиМаркировкиДо.Units.Добавить(Выборка.КодРеализации);
						КонецЕсли;
						Если ЗначениеЗаполнено(Выборка.КодКорректировки) И НЕ ЗначениеЗаполнено(Выборка.КодРеализации) Тогда
							СтруктураСтрокиМаркировкиПосле.Units.Добавить(Выборка.КодКорректировки);
						КонецЕсли;
					КонецЦикла;
					МассивКодовМаркировкиДо=Новый Массив;
					МассивКодовМаркировкиДо.Добавить(СтруктураСтрокиМаркировкиДо);
					МассивКодовМаркировкиПосле=Новый Массив;
					МассивКодовМаркировкиПосле.Добавить(СтруктураСтрокиМаркировкиПосле);
					НайденноеЗначение.OriginalItemIdentificationNumbers=МассивКодовМаркировкиДо;
					НайденноеЗначение.CorrectedItemIdentificationNumbers=МассивКодовМаркировкиПосл­е;
				КонецЕсли;	
			КонецЦикла;
Показать
kotofeyru; +1 Ответить
14. yudinvs 2 15.07.21 11:29 Сейчас в теме
(13) Спасибо. Пока еще не получилось, буду пробовать. Недавно контур выложил документацию
https://1c-pro-docs.diadoc.ru/ru/latest/UTD736.html
15. LediStile 2 30.07.21 17:33 Сейчас в теме
Подключаю обработку ДиадокПРО 4.5.29 для конфигурации "ДАЛИОНТренд"

Отладка включается в режиме предприятия при нажатии на галочку ОТЛАДКА. Обработки выгружаются в каталог (лучше на сервере) "\\ИмяКаталогаОсновногоМодуля\libs". Сюда выгружаются обработки из макетов ____ВложенныеФайлы____ . Здесь вроде всё понятно. Но стоит задача, а как отладить обработку Модуль_ИнтеграцияУниверсальный, которая хранится в одном из макетов ТиповойМодульДиадокУФ(Модуль_ДиадокУФ). Сейчас я это сделал и попробую описать. Мне это нужно было для конфигурации "ДАЛИОНТренд".

// Может напишу что-то лишнего или не допишу что-то важного, не судите строго

1. В подключаемом модуле верну мою конфу
Функция ИмяКонфигурации1С()	
	//Возврат "БП20";
	Возврат "ДАЛИОНТренд" //Новая конфигураци Далион Тренд 3.0	
КонецФункции


2. В обработке Модуль_ДиадокУФ необходимо определить мою конфигурацию "ДАЛИОНТренд":

Функция МаркерКонфигурации()
	
	ИменаПодсистемПоМаркерам = Новый Соответствие;
	ИменаПодсистемПоМаркерам.Вставить("БП30", ИменаПодсистемБП());
	ИменаПодсистемПоМаркерам.Вставить("УТ11", ИменаПодсистемУТ());
	ИменаПодсистемПоМаркерам.Вставить("УНФ16", ИменаПодсистемУНФ());
	ИменаПодсистемПоМаркерам.Вставить("БГУ20", ИменаПодсистемБГУ());
	ИменаПодсистемПоМаркерам.Вставить("Розница", ИменаПодсистемРозница());
	ИменаПодсистемПоМаркерам.Вставить("АльфаАвто6", ИменаПодсистемАльфаАвто());
	ИменаПодсистемПоМаркерам.Вставить("ДАЛИОНТренд", ИменаПодсистемДалионТренд());
	
	ПодсистемыКонфигурации = ОписанияПодсистемКонфигурации();
	
	Результат = "";
	
	Для Каждого КлючИЗначение Из ИменаПодсистемПоМаркерам Цикл
		
		ПодходящиеПодсистемы = КлючИЗначение.Значение;
		
		Если ЕстьПодходящаяПодсистема(ПодсистемыКонфигурации, ПодходящиеПодсистемы) Тогда
			Результат = КлючИЗначение.Ключ;
			Прервать;
		КонецЕсли;
		
	КонецЦикла;
	
	Возврат Результат;
	
КонецФункции
Показать


Функция ИменаПодсистемДалионТренд()
	
	Результат = Новый Массив;
	Результат.Добавить("ДАЛИОНТренд");	
	Возврат Результат;
	
КонецФункции

Показать


	Функция ИмяФормыИнтеграции() Экспорт
		
		Если ПараметрыКлиентСервер.МаркерКонфигурации = "БП30" Тогда
			Результат = "Модуль_ИнтеграцияБП30";
		ИначеЕсли ПараметрыКлиентСервер.МаркерКонфигурации = "УТ11" Тогда
			Результат = "Модуль_ИнтеграцияУТ11";
		ИначеЕсли ПараметрыКлиентСервер.МаркерКонфигурации = "БГУ20" Тогда
			Результат = "Модуль_ИнтеграцияБГУ20";
		ИначеЕсли ПараметрыКлиентСервер.МаркерКонфигурации = "УНФ16" Тогда
			Результат = "Модуль_ИнтеграцияУНФ16";
		ИначеЕсли ПараметрыКлиентСервер.МаркерКонфигурации = "Розница" Тогда
			Результат = "Модуль_ИнтеграцияРозница";
		ИначеЕсли ПараметрыКлиентСервер.МаркерКонфигурации = "АльфаАвто6" Тогда
			Результат = "Модуль_ИнтеграцияАльфаАвто6";
		ИначеЕсли ПараметрыКлиентСервер.МаркерКонфигурации = "ДАЛИОНТренд" Тогда
			Результат = "Модуль_ИнтеграцияУниверсальный"; // рома 
		Иначе
			Результат = Неопределено;
		КонецЕсли;
		
		Возврат Результат;
		
	Конецфункции 
Показать


Вроде после таких махинаций правильно определяется конфигурация и это хорошо. Проверим:
[img]C:\fakepath\метеданные далион.PNG[/img]


3. Необходимо указать КаталогМодулейСервера, по сути каталог где хранится основная обработка diadocPro. Для отладки напишите РежимОтладкиСервера = ИСТИНА

Функция ПараметрыИнициализацииМодуля()
	
	Результат = Новый Структура;
	Результат.Вставить("ВызовИзРасширения", Ложь);
	Результат.Вставить("РежимОтладкиСервера", Истина);  // признак отладки
	Результат.Вставить("КаталогМодулейСервера", "\\ИмяКаталогаОсновногоМодуля\");  // путь моей обработки: "\\МойСервер\ИмяКаталогаОсновногоМодуля\Diadoc4_5.epr"
	Результат.Вставить("ОтправкаФайловСтарыйИнтерфейс", Ложь);
	Результат.Вставить("ИспользоватьФормуВводаНакладной", Ложь);
	Результат.Вставить("МаркерКонфигурации", ПолучитьМаркерКонфигурации());
	
	Возврат Результат;
	
КонецФункции

Показать


4. Здесь я определяю как должна действовать моя обработка "Модуль_ИнтеграцияУниверсальный"

	Функция МетодСервера(Знач ИмяМодуля= "", ИмяМетода,
			Параметр0= NULL, Параметр1= NULL, Параметр2= NULL, Параметр3= NULL, Параметр4= NULL, 
			Параметр5= NULL, Параметр6= NULL, Параметр7= NULL, Параметр8= NULL, Параметр9= NULL) Экспорт
		
		Если НЕ ЗначениеЗаполнено(ИмяМодуля) Тогда
			
			ИмяМодуля = ПараметрыКлиентСервер.ИмяОбработки;
			
		ИначеЕсли ИмяМодуля = "Модуль_Интеграция" Тогда
			
			ИмяМодуля = ПараметрыКлиентСервер.ИмяФормыИнтеграции;
			
		ИначеЕсли ИмяМодуля = "Модуль_ИнтеграцияУниверсальный" Тогда
			
			ИмяМодуля = ПараметрыКлиентСервер.ИмяОбработки;			
			
		КонецЕсли;
		
		Результат = ВыполнитьМетод(ИмяМодуля, ИмяМетода
		, Параметр0, Параметр1, Параметр2, Параметр3, Параметр4 
		, Параметр5, Параметр6, Параметр7, Параметр8, Параметр9
		);
		
		Возврат Результат;
		
	КонецФункции

	Процедура ПовторноеИспользованиеСброситьЗначение(Знач ИмяМодуля= "", ИмяМетода,
		Параметр0= NULL, Параметр1= NULL, Параметр2= NULL, Параметр3= NULL, Параметр4= NULL, 
		Параметр5= NULL, Параметр6= NULL, Параметр7= NULL, Параметр8= NULL, Параметр9= NULL) Экспорт
		
		Если НЕ ЗначениеЗаполнено(ИмяМодуля) Тогда
			
			ИмяМодуля = ПараметрыКлиентСервер.ИмяОбработки;
			
		ИначеЕсли ИмяМодуля = "Модуль_Интеграция" Тогда
			
			ИмяМодуля = ПараметрыКлиентСервер.ИмяФормыИнтеграции;
			
		ИначеЕсли ИмяМодуля = "Модуль_ИнтеграцияУниверсальный" Тогда
			
			ИмяМодуля = ПараметрыКлиентСервер.ИмяОбработки; // Рома
			
		КонецЕсли;
		
		МассивПараметров= МассивПараметров(
		Параметр0, Параметр1, Параметр2, Параметр3, Параметр4, 
		Параметр5, Параметр6, Параметр7, Параметр8, Параметр9);
		
		УдалитьРезультатФункцииИзКэш(ИмяМодуля, ИмяМетода, МассивПараметров);
		
	КонецПроцедуры

Функция ИмяМенеджераИнтеграции()
	Возврат "Модуль_ИнтеграцияУниверсальный";
КонецФункции


Функция МенеджерИнтеграции_НоваяНоменклатураИнформационнойБазы(Номенклатура = Неопределено, Характеристика = Неопределено, Упаковка = Неопределено)
	
	Результат = МетодСервера("Модуль_ИнтеграцияУниверсальный", "НоваяНоменклатураИнформационнойБазы"
		, Номенклатура
		, Характеристика
		, Упаковка);
	
	Возврат Результат;
	
КонецФункции

Процедура МенеджерИнтеграции_НайтиНоменклатуруИнформационнойБазы(НоменклатураИБ, НоменклатураКонтрагента)
	
	МетодСервера("Модуль_ИнтеграцияУниверсальный", "НайтиНоменклатуруИнформационнойБазы"
		, НоменклатураИБ
		, НоменклатураКонтрагента);
	
КонецПроцедуры

	Функция КаталогиВложенныхОбработокВРежимеОтладки()
		
		КаталогБиблиотек = "libs";
		КаталогИнтеграции = "include";
		
		Результат = Новый Соответствие;
		
		Результат.Вставить("Модуль_РаботаСВнешнимиПечатнымиФормами"	, КаталогИнтеграции);
		Результат.Вставить("Модуль_ИнтеграцияУниверсальный"			, КаталогИнтеграции);
		Результат.Вставить("Модуль_ИнтеграцияБП30"					, КаталогИнтеграции);
		Результат.Вставить("Модуль_ИнтеграцияУТ11"					, КаталогИнтеграции);
		Результат.Вставить("Модуль_ИнтеграцияБГУ20"					, КаталогИнтеграции);
		Результат.Вставить("Модуль_ИнтеграцияУНФ16"					, КаталогИнтеграции);
		Результат.Вставить("Модуль_ИнтеграцияРозница"				, КаталогИнтеграции);
		Результат.Вставить("Модуль_ИнтеграцияАльфаАвто6"			, КаталогИнтеграции);
		
		Результат.Вставить("ГенерацияXML"	, КаталогБиблиотек);
		Результат.Вставить("ПечатныеФормы"	, КаталогБиблиотек);
		
		Возврат Результат;
		
	КонецФункции

	Функция МетаданныеСчетовФактурПолученных()
		
		Результат = Новый Массив;
		
		ВидыЭД = МетодСервера("Модуль_ИнтеграцияУниверсальный", "ВидыЭлектронныхДокументов");
		
		ВидыСФ = Новый Массив;
		ВидыСФ.Добавить(ВидыЭД.СчетФактура);
		ВидыСФ.Добавить(ВидыЭД.КорректировочныйСчетФактура);
		
		Для Каждого ВидЭД Из ВидыСФ Цикл
			
			ПравилаЗагрузки = МетодСервера("Модуль_ИнтеграцияУниверсальный", "ПравилаЗагрузкиПоВидуЭД", ВидЭД);
			
			Для Каждого Элемент Из ПравилаЗагрузки Цикл
				
				ВидМетаданных = Элемент.Ключ;
				Если Результат.Найти(ВидМетаданных) = Неопределено Тогда
					Результат.Добавить(ВидМетаданных);
				КонецЕсли;
				
			КонецЦикла;
			
		КонецЦикла;
		
		Возврат Результат;
		
	КонецФункции

	Функция ОбъектКонстант() Экспорт
		
		Результат = МетодСервера("Модуль_ИнтеграцияУниверсальный", "ВладелецОбщихНастроекМодуля");
		
		Возврат Результат;
		
	КонецФункции


Показать


5. И самое основное, в каком месте я переопределяю ВнешняяОбработкаМодуль_ИнтеграцияУниверсальный.ИспользуемоеИмяФайла. Это здесь:

		Если ПараметрыКлиентСервер.РежимОтладкиСервера Тогда
			
			ПодКаталогиОбработок = КаталогиВложенныхОбработокВРежимеОтладки();
			
			ИмяФайла		 = ИмяМодуля + ".epf";
			ПодКаталог		 = ПодКаталогиОбработок[ИмяМодуля];
			КаталогОбработок = ПараметрыКлиентСервер.КаталогМодулейСервера; // рома , у меня все хранилось в "\\МойСервер\Диадок Про\"
			ПолноеИмяФайла	 = ОбъединитьПути(КаталогОбработок, ПодКаталог, ИмяФайла);
			
			Если Не ФайлСуществует(ПолноеИмяФайла) Тогда
				ЗаписатьМакетОбработкиВФайл(ИмяМодуля, ПолноеИмяФайла);
			КонецЕсли;
			
			Результат = ВнешниеОбработки_СоздатьИзФайла(ПолноеИмяФайла, Истина); //  ИСТИНА - зто признак для отладки моей обработки, не нужна отладка - оставьте ЛОЖЬ. Этот признак меняет ИспользуемоеИмяФайла у обработки
			
		Иначе
			
			ПроверитьЧтоБезопасныйРежимОтключен();
			
			ДвоичныеДанные = ПолучитьМакет(ИмяМодуля);
			АдресОбработки = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
			
			ИмяОбработки = ВнешниеОбработки_Подключить(АдресОбработки);
			Результат	 = ВнешниеОбработки_СоздатьПоИмени(ИмяОбработки);
			
		КонецЕсли;
		
		Если ПараметрыКлиентСервер.РежимОтладкиСервера Тогда
			Результат.ПриглашениеОтладки();
		КонецЕсли;
		
		Возврат Результат;
		
	КонецФункции

Показать


Здесь создается обработка в каталоге:

	Функция ВнешниеОбработки_СоздатьИзФайла(ИмяФайла, БезопасныйРежим = Ложь)
		
		ПроверитьЧтоФайлСуществует(ИмяФайла);
		
		Результат = ВнешниеОбработки.Создать(ИмяФайла, БезопасныйРежим);
		
		Возврат Результат;
		
	КонецФункции
	
	Процедура ПроверитьЧтоФайлСуществует(ИмяФайла)
		
		Файл = Новый Файл(ИмяФайла);
		
		Если НЕ Файл.Существует() Тогда
			
			Если ПараметрыКлиентСервер.ФайловыйРежимРаботы Тогда
				СтрокаПроверьтеФайлНаСервере = "";
			Иначе
				СтрокаПроверьтеФайлНаСервере = НСтр("ru = '
				|Проверьте, что файл доступен для загрузки на сервере 1С.'");
			КонецЕсли;
			
			ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru = 'Файл не обнаружен ''%1'' %2'"), ИмяФайла, СтрокаПроверьтеФайлНаСервере);
			
			ВызватьИсключение ТекстОшибки;
			
		КонецЕсли;
		
	КонецПроцедуры

Показать


Результат.ИспользуемоеИмяФайла = "\\МойСервер\Диадок Про\include\Модуль_ИнтеграцияУниверсальный.epf" - это то, что мне нужно для отладки

Все обработки хранятся в переменных Кэш и ОбщийКэш в модулях

Пожалуй, прикреплю я свою обработку сюда
ПМ_ТорговыеСети - мой подключаемый модуль
ТиповойМодульДиадокУФ.epf - хранится в \\....\ТиповойМодульДиадокУФ.epf и скачивается в каталог при нажатии режима ОТЛАДКИ в основной обработке
Прикрепленные файлы:
ПМ_ТорговыеСети_4.2.3.10_24_06_2021.epf
ТиповойМодульДиадокУФ.epf
16. LediStile 2 03.08.21 14:33 Сейчас в теме
18. mdv92 03.06.22 18:21 Сейчас в теме
Скажите, пожалуйста, сейчас это еще работает? Там же новая версия?
21. John_d 5277 14.09.22 15:36 Сейчас в теме
(18) Это работает и в новой версии
20. Клетчатый 25.08.22 16:31 Сейчас в теме
Кто нибудь знает, как в новом модуле КонтурЭДО получить, то что раньше называлось протоконтент?
22. John_d 5277 14.09.22 15:39 Сейчас в теме
(20)
Для Каждого Стр Из Параметры.Пакет.Документы Цикл
     СсылкаНаДокумент = Стр.Документ1С;
     Протоконтент	 = Стр.Content;
     ТипКонтента		 = Стр.ТипКонтента;
VyacheslavShilov; Клетчатый; veda38; +3 Ответить
23. veda38 16.09.22 00:24 Сейчас в теме
(22) Спасибо! Очень помогло.
24. Eos 23.09.22 14:29 Сейчас в теме
Добрый день! Есть вопрос по новому универсальному модулю Диадок. Как в подключаемом модуле обращаться к списку документов?
Не получается вызвать функцию "СписокДокументов_Документы" модуля "Ядро". Искал примеры, нигде не нашел подобного
25. Eos 23.09.22 14:32 Сейчас в теме
Еще не могу понять, почему событие "ПослеУстановкиСтатусаДокумента" в подключаемом модуле обрабатывает не все статусы. Тестировал под тестовой ЭЦП. При аннулировании проваливается в функцию, при подписании почему-то нет
26. fortran 18.10.22 08:58 Сейчас в теме
Добрый день, коллеги. Может ли кто-нибудь пояснить, каким образом вызываются функции из подключаемого модуля? Моя задача предельно проста! При загрузке документа поступления в базу 1С он должен проводится. По умолчанию он только записывает. Из документации на сайте Диадок я вычитал про функцию подключаемого модуля "ВыполнитьТребуемоеДействие", в которой уже даже в качестве примера прописано проведение загруженного документа. Но проблема в том, как вызвать эту функцию? Некоторые события подключаемого модуля вызываются, но далеко не все. Опять же в документации написано про какой-то анализ и что якобы после него вызывается "ВыполнитьТребуемоеДействие", но события анализа тоже не отрабатывает и кнопок похожих на "Анализ" я в интерфейсе обработки не нашел. Очень не хочется делать в лоб и менять код в ядре на проведение вместо записи.
27. kai068 5 05.12.22 12:29 Сейчас в теме
(26) там есть обработка события
ИначеЕсли ИмяСобытия = "ПолучитьЗаполненныйОбъектДокумента1С" Тогда

Возврат ПолучитьЗаполненныйОбъектДокумента1С(Параметры);


Функция ПолучитьЗаполненныйОбъектДокумента1С(Параметры)

Ошибки = Новый Массив;

ПроверитьФункциюДокумента(Параметры, Ошибки);
ПроверитьЗаполнитьИдентификаторОперации(Параметры, Ошибки);
ДополнительныеПараметры = Параметры.ДополнительныеПараметры;

Если ЗначениеЗаполнено(Ошибки) Тогда
Результат = РезультатФункцииОшибка(Ошибки);
Возврат Результат;
КонецЕсли;

Документ = Параметры.Документ;
ИдентификаторОперации = Параметры.ИдентификаторОперации;
ДополнительныеПараметры = Параметры.ДополнительныеПараметры;

Результат = ОсновнойМодуль.НовыйРезультатФункции();

Если Параметры.ИдентификаторОперации = "ПриходныйОрдерНаТовары" тогда

ПараметрыЗаполнения = НовыйПараметрыЗаполненияПТУ();
ЗаполнитьЗначенияСвойств(ПараметрыЗаполнения, ДополнительныеПараметры);
СоздатьДокументы(Документ, Результат, ПараметрыЗаполнения);

Иначе
Возврат Неопределено;
КонецЕсли;

Возврат Результат;

КонецФункции

в Процедуре СоздатьДокумент вы создаете Документ поступления и С/фактуру, где его и проводите.
28. Клетчатый 15.02.24 15:41 Сейчас в теме
Здравствуйте, кто нибудь знает как редактировать старый подключаемый модуль в новой версии КонтурЭДО?

Всё, сам нашёл, в дополнительных обработках висит Диадок (СКБ Контур): Подключаемый модуль - это подключенный старый, выгружаем, правим, загружаем обратно.
Оставьте свое сообщение