|
1198 / 333 / 132
Регистрация: 07.04.2011
Сообщений: 1,766
|
|||||||||||
Конвертация данных. Передача из ПВД03.06.2020, 16:53. Показов 475965. Ответов 7
Метки нет (Все метки)
Всем доброго времени суток.
Задача:из табличной части документа источника необходимо создать такое же количество документов в приемнике.По определенным критериям. Например: В ТЧ источника склады, и номенклатура, которая привязана к этим складам. Выглядит так: Склад 1_номенклатура 1 Склад 1_номенклатура 2 ... Склад 1_номенклатура N Потом склад 2 и тд.. Вот и нужно разделить по количеству складов в документе на новые документы, с переносом номенклатуры на этих складах. Собственно сабж: Для этого сделал отдельное ПВД, которое разбивает документы, и в цикле вызываю ПКО выгрузки документа.
ПКО:ДобавитьНоменклатуру, ПКС: Код Наименование Артикул И в ПКО "СНТ_СчетИсходящийТЕСТ", для табличной части ставлю флажок "Получить из входящих данных" Не для каждого реквизита ТЧ флажок,а именно на уровне ПКГС. В табличной части приемника у меня есть поле "товар" с правилом конвертации "ПКО:ДобавитьНоменклатуру" То есть в итоге у меня в структуре "ВходящиеДанные" есть поле "Товар", соответствующее полю "Товар" в ПКГС,которое ссылочного типа. Когда вызывается правило выгрузки "СНТ_СчетИсходящийТЕСТ" - заканчивается ошибкой Кликните здесь для просмотра всего текста
Ошибка получения свойства объекта из входящих данных ПКО = ДобавлениеИСопоставлениеНоменклатураТЕСТ (Справочник: Номенклатура) ПКС = 1 (--> Код) Объект = Структура (Структура) СвойствоПриемника = Код (Строка) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.М одульОбъекта(8282) КодСообщения = 68 Ошибка в обработчике события ПередОбработкойПравилаВыгрузки ПВД = ТМЗ_СчетИсходящий00001 Обработчик = ПередОбработкойВыгрузкиДанных ОписаниеОшибки = Ошибка получения свойства объекта из входящих данных ПКО = ДобавлениеИСопоставлениеНоменклатураТЕСТ (Справочник: Номенклатура) ПКС = 1 (--> Код) Объект = Структура (Структура) СвойствоПриемника = Код (Строка) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.М одульОбъекта(8282) КодСообщения = 68 ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.М одульОбъекта(1693) КодСообщения = 31 Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML. МодульОбъекта(1716)}: Ошибка в обработчике события ПередОбработкойПравилаВыгрузки ПВД = ТМЗ_СчетИсходящий00001 Обработчик = ПередОбработкойВыгрузкиДанных ОписаниеОшибки = Ошибка получения свойства объекта из входящих данных ПКО = ДобавлениеИСопоставлениеНоменклатураТЕСТ (Справочник: Номенклатура) ПКС = 1 (--> Код) Объект = Структура (Структура) СвойствоПриемника = Код (Строка) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.М одульОбъекта(8282) КодСообщения = 68 ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.М одульОбъекта(1693) КодСообщения = 31 Вроде и передается в ПКГС,в поле "Товар" структура, которая содержится в строке таблицы значений с наименованием поля "Товар" - в чем ошибка? Добавлено через 5 часов 18 минут Методом тыка было выяснено что эта ошибка возникает в том случае, когда в ПКС не установлен источник. В этом случае в ПКС нужно переменной "Значение" обязательно что-то присвоить. Видимо проблема в том, что правило добавления номенклатуры вызывается не через "ВыгрузитьПоПравилу", а в ходе выполнения основного правила.То есть явно структура данных не передается через "ВыгрузитьПоПравилу" Вопрос риторический, но все же..что делать?)
0
|
|||||||||||
| 03.06.2020, 16:53 | |
|
Ответы с готовыми решениями:
7
Конвертация данных Конвертация данных
|
|
Модератор
|
|||||||
| 04.06.2020, 02:31 | |||||||
|
ничего не понял....
1. Зачем? И никаких входящих данных, они же у тебя уже все есть в ТЗ
0
|
|||||||
|
1198 / 333 / 132
Регистрация: 07.04.2011
Сообщений: 1,766
|
|||||||||||
| 04.06.2020, 11:48 [ТС] | |||||||||||
|
У меня нет объекта выборки,и стоит вид обработки "произвольный алгоритм",т.к. я из сотни документов собираю запросом только подходящие.
Все отрабатывает. Именно проблема с передачей параметров ПКО подбора и добавления номенклатуры для строки ТЧ. Добавлено через 2 часа 59 минут Да и еще непонятка..В ПВД, в событии "Перед выгрузкой" написано
Отказ не прерывает выгрузку? в ПВД указан "Источник",и "Стандартная выборка" Добавлено через 4 часа 13 минут Проблема решена = )
0
|
|||||||||||
|
Модератор
|
|||
| 05.06.2020, 03:41 | |||
|
Но ты же хочешь через "Попу" сделать И самостоятельно инициализируешь исходящие данные, которые потом передаешь в ПКО Добавлено через 49 секунд
0
|
|||
|
1198 / 333 / 132
Регистрация: 07.04.2011
Сообщений: 1,766
|
|||||||
| 05.06.2020, 10:00 [ТС] | |||||||
Объект выборки:ДокументСсылка.ТМЗ_СчетИсходящий Способ выборки:Стандартная выборка Правило конвертации в ПВД:СНТ_СчетИсходящийТЕСТ ПКО:СНТ_СчетИсходящийТЕСТ Источник:ДокументСсылка.ТМЗ_СчетИсходящи й Приемник:ДокументСсылка.СНТ Если отказ работает, то какого ... у меня выгружаются в файл все документы, которые попадают и под ограничения,и левые документы? Я вот в это въехать не могу. Я в рабочем алгоритме в ПВД в "Перед обработкой" все выбрал..в в этом случае у меня передается 8 ссылок(как раз то количество, которое реально) А в этом коде, хоть и идет отсев - все равно выгружается. Или уже нужно отсеивать в ПКО "СНТ_СчетИсходящийТЕСТ" - тогда не понимаю смысла использования Если Объект.флНакладная ИЛИ Объект.флСчетНаОплату ИЛИ Объект.Контрагент.Тип <> Перечисления.ТипыКонтрагентов.ФЛ Тогда Отказ = ИСТИНА; КонецЕсли; в ПВД в "Перед выгрузкой" Вот этот момент можно растолковать? Добавлено через 3 часа 6 минут Доперло...сомневаюсь, но кажется так..Отказ НЕ ПРЕРЫВАЕТ обработку выборки. Заблуждался, думая что отказ прерывает дальнейшее выполнение моего алгоритма. Нужно было так: Если Объект.флНакладная ИЛИ Объект.флСчетНаОплату ИЛИ Объект.Контрагент.Тип <> Перечисления.ТипыКонтрагентов. ФЛ Тогда Отказ = ИСТИНА; ИНАЧЕ МойАлгоритм; КонецЕсли;
0
|
|||||||
|
1198 / 333 / 132
Регистрация: 07.04.2011
Сообщений: 1,766
|
||
| 05.06.2020, 13:59 [ТС] | ||
|
ПКО: Источник : ДокументСсылка.ТМЗ_СчетИсходящий Способ выборки: Стандартная выборка В событии "Перед обработкой" Если Объект.флНакладная ИЛИ Объект.флСчетНаОплату ИЛИ Объект.Контрагент.Тип <> Перечисления.ТипыКонтрагентов.ФЛ Тогда Сообщить("Отказ для:" + Объект.Ссылка); Отказ = ИСТИНА; КонецЕсли; Сообщить("После отказа:" + Объект.Ссылка); В логе: Сообщить("Отказ для:" + Счет №1); Сообщить("После отказа:" + Счет №1); Сообщить("Отказ для:" + Счет №2); Сообщить("После отказа:" + Счет №2); Парные сообщения. То есть после отказа продолжалось выполнение моего алгоритма. Пока я не вынес эту часть в блок "Иначе"
0
|
||
|
Модератор
|
||||||
| 05.06.2020, 15:23 | ||||||
Сообщение было отмечено OverDozero как решение
Решение
OverDozero, да раздели ты уже наконец-то Событие ПередОбработкой и Выгрузку
Это разные события Добавлено через 40 секунд Отказ прекращает ВЫГРУЗКУ! Не обработку события ПередОбработкой Добавлено через 4 минуты Обработчики "Правила выгрузки данных" Перед обработкой Условия возникновения события Событие выполняется перед обработкой каждого правила выгрузки один раз. Используется для установки дополнительных параметров перед выгрузкой данных, для переопределения выборки объектов, подлежащей выгрузке, либо для выгрузки дополнительной информации Параметры: Отказ - Булево. Если установить значение Истина, то выгрузка данных по данному правилу не производится Параметры - Структура, в которой хранятся переменные доступные во всех обработчиках ИмяПКО - Строка. Имя правила конвертации объектов, указанное по умолчанию в правиле выгрузки данных. При выгрузке конкретных объектов может быть изменено Правило - ссылка на данное правило выгрузки данных ИсходящиеДанные - Произвольный. Произвольные вспомогательные данные, доступные при выгрузке объектов выборки ВыборкаДанных - Запрос, Результат запроса, Выборка из результата запроса или произвольная коллекция выгружаемых объектов. Используется, когда способ выгрузки данных - Произвольный алгоритм. Если определить данную переменную, то обход коллекции и выгрузка объектов будет осуществляться автоматически Важно: Если для выборки данных ПВД используется произвольный алгоритм и в обработчике ПВД "Перед обработкой" инициируется параметр ВыборкаДанных, то для ПКО следует установить признак "Не запоминать выгруженные объекты". Добавлено через 4 минуты Если бы ты написал вот так, то и не узнал бы как работает событие ПередОбработкой
Так и думал бы что установка булевого значения в коде может прервать его ВЫПОЛНЕНИЕ
1
|
||||||
| 05.06.2020, 15:23 | |
|
Помогаю со студенческими работами здесь
8
Конвертация данных. 1С 8.1. УТ Конвертация Данных 3.0
Конвертация данных Конвертация данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|