Требуется при электронном обмене документами исключить характеристику номенклатуры из формы проверки документов перед отправкой и удалить характеристику номенклатуры из пакета при обменен электронными документами.
Ключевые вопросы:
1. В каком модуле искать кусок кода для изменения
2. Как подключить отладку модуля для отладки (Возможно это подключаемый модуль).
2. В данном модуле внес изменения в процедуру "СформироватьЗапрос_ДанныеТЧ_ПоРеализацияТоваровУслуг" следующие изменения.
Процедура СформироватьЗапрос_ДанныеТЧ_ПоРеализацияТоваровУслуг(Запрос, КолонкаКодаТовара, СсылкаНаДокумент)
//Сообщить("Процедура СформироватьЗапрос_ДанныеТЧ_ПоРеализацияТоваровУслуг");
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Подзапрос.НомерСтроки КАК НомерСтроки,
| Подзапрос.Номенклатура КАК Номенклатура,
| Подзапрос.НоменклатураПредставление КАК НоменклатураПредставление,
//Лукин++
//| Подзапрос.Характеристика КАК Характеристика,
| """" КАК Характеристика,
//Лукин--
| Подзапрос.Серия КАК Серия,
| Подзапрос.КодНоменклатуры КАК КодНоменклатуры,
| Подзапрос.Количество КАК Количество,
| Подзапрос.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| Подзапрос.Цена КАК Цена,
Показать
3.Сохранил и загрузил обработку обратно в макет. Параллельно столкнулся с проблемой не принятия изменений.
По какой-то причине изменения принимаются при нажатии кнопки "Выгрузить обработки".на основной форме.
4. Проблему с отладкой так и не решил пользовался наводкой из (19) В ключевых местах писал Сообщить(), тем самым вычислял в каком куске кода нахожусь и какие данные находятся в переменных
6.
user705522_constantin_h
3504.12.20 12:23 Сейчас в теме
(1)В модуле Диадок сохраняете макет ТиповойМодульДиадокУФ. Открываете сохранённый макет. Находите нужный макет, сохраняете его. Вносите изменения. Затем всё в обратном порядке: в сохраненный ТиповойМодульДиадокУФ изменённый макет Загрузить из файла. И также с изменённым ТиповойМодульДиадокУФ.
Насколько я слышал у диадока код выполнения размещен даже в макетах, что значительно усложняет отладку обработки.
У сбиса в этом плане проще, там надо всего то поправить структуру XML файла, главное разобраться как это работает.
(2) Подключаемы модуль действительно находиться в макете внешней обработки Диадока, но как его правильно подключить для отладки для меня не понятно. Все статьи про это на инфостарте устарели и не актуальны, либо не понятны в использовании. Хотелось бы узнать пошаговые действия, что да как делать.
Чтобы не быть голословным - прикрепляю скрин.
На скрине выделен модуль, который я выгружаю для отладки. Использую данный макет так как работаю в 1С:ERP Управление предприятием 2 (2.4.12.109)
4.
user705522_constantin_h
3504.12.20 12:02 Сейчас в теме
(3)Включение режима отладки:
1. Все функции.
2. Диадок: Дополнительные справочники (Справочники)
3. ОбщиеНастройки
4. Режим отладки - Да
Но в макете вы всё равно Точку останова не сделаете.
Во первых у них там не только в макетах эти модули а и а и в модулях так же есть макеты с модулями...это жесть...
По хорошему надо эти модули сохранять на диск в каталог, при том каталоги нужно создавать с определенным наименованием,
и в основном модуле нужно прописать путь к этим обработкам...
А править лучше через подключаемый модуль, У них для этого есть инструкция вот Описание подключаемого модуля диадок, это намного проще чем расковыривать стандартные модули...
В архиве модули извлеченные из обработки диадок с каталогами
(5) Данное описание видел. В нем не описано как подключить "Подключаемы модуль" для отладки. В этом и вся проблема.
Мне нужны действия для возможности попасть внутрь "Подключаемого модуля", чтобы отловить момент выполнения какой-либо команды на основной форме обработки.
10.
user705522_constantin_h
3504.12.20 13:34 Сейчас в теме
(8)Сохраняете нужный макет. Открываете. Находите в нем нужную процедуру. Если она вызывает процедуру из другого макета. Сохраняете его. Открываете. И опять ищете нужную процедуру.
(9) На основании этого принимаю решение, что необходимо сохранить на диск соответствующий макет
Сохраняю на диск и переименовываю следующим образом - ПодключаемыйМодульДиадок.epf.
Если не переименовывать, то ругается на то что файл не доступен.
(12) Там есть кнопка сохранить шаблон, можно выбрать какие функции надо переопределить, в архиве, который я давал выше есть файл в папке include, "ПМ_УТ_11.epf" И "Модуль_ИнтеграцияУТ11.epf" Это основные файлы которые подготавливают данные что будут отправлены, именно для ЕРП..посмотрите их
(17) Отладить там не получиться просто так, во первых даже при включении отладки вы поставив точку останова в этом файле ничего не получите, так как диадок создает их как бы заново, каждый раз при его открытии, единственно это можно поставить точку останова в основном модуле, и пошагово двигаться дальше...тогда еще можно дойди ( с большим гемором до нужного места).
20.
user705522_constantin_h
3504.12.20 15:09 Сейчас в теме
(17)Табличная часть формируется в Функция ДанныеТабличныхЧастей(Шапка). Точку останова я поставить не смог. Я сначала встраивал в модуль вывод данных оператором Сообщить(). Смотрел на выводимые данные, затем изменял код.
Процедура ДополнитьДанныеШапкиХарактеристикамиТабличнойЧасти(Шапка, ТабличнаяЧасть) Экспорт
Шапка.Вставить("ЕстьТовары" , ТабличнаяЧасть.НайтиСтроки(Новый Структура("ЭтоУслуга", Ложь )).Количество() > 0);
Шапка.Вставить("ЕстьУслуги" , ТабличнаяЧасть.НайтиСтроки(Новый Структура("ЭтоУслуга", Истина)).Количество() > 0);
// TODO: Добавить расчет следующих показателей
// * ВсегоНДС, ВсегоСНДС - вычислять нужно в цикле по ТЧ, использовать метод Итог(<Колонка>)
// нельзя, т.к. в строках могут быть не только числа (например, Неопределено)
// * ТипНалогообложения - в качестве возможных значений предлагается использовать имена значений
// перечисления ТипыНалогообложенияНДС из УТ/КА/ERP.
// На текущий момент важны 3 значения:
// ** ОблагаетсяНДС - ВсегоНДС > 0
// ** НеОблагаетсяНДС - все строки по ставке "Без НДС"
// ** ОблагаетсяНДСУПокупателя - все строки по ставке "НДС исчисляется налоговым агентом"
КонецПроцедуры
Показать
Это когда в шапке нужно вывести что-то из табличной части. А мне нужно было изменить значения в табличной части.
(21)Вот это очень помогло. Заметил особенность, что через стандартное подключение "Подключаемого модуля" ничего не работает.
Приходиться выгружать и загружать файл модуля при каждой проверке. Куска кода с подстановкой функции Сообщить() с диагностическими сообщениями.
До конца пока проблему не решил. Обязательно отпишусь по факту доработки.
2. В данном модуле внес изменения в процедуру "СформироватьЗапрос_ДанныеТЧ_ПоРеализацияТоваровУслуг" следующие изменения.
Процедура СформироватьЗапрос_ДанныеТЧ_ПоРеализацияТоваровУслуг(Запрос, КолонкаКодаТовара, СсылкаНаДокумент)
//Сообщить("Процедура СформироватьЗапрос_ДанныеТЧ_ПоРеализацияТоваровУслуг");
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Подзапрос.НомерСтроки КАК НомерСтроки,
| Подзапрос.Номенклатура КАК Номенклатура,
| Подзапрос.НоменклатураПредставление КАК НоменклатураПредставление,
//Лукин++
//| Подзапрос.Характеристика КАК Характеристика,
| """" КАК Характеристика,
//Лукин--
| Подзапрос.Серия КАК Серия,
| Подзапрос.КодНоменклатуры КАК КодНоменклатуры,
| Подзапрос.Количество КАК Количество,
| Подзапрос.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| Подзапрос.Цена КАК Цена,
Показать
3.Сохранил и загрузил обработку обратно в макет. Параллельно столкнулся с проблемой не принятия изменений.
По какой-то причине изменения принимаются при нажатии кнопки "Выгрузить обработки".на основной форме.
4. Проблему с отладкой так и не решил пользовался наводкой из (19) В ключевых местах писал Сообщить(), тем самым вычислял в каком куске кода нахожусь и какие данные находятся в переменных