|
1198 / 333 / 132
Регистрация: 07.04.2011
Сообщений: 1,766
|
|||||||||||
Конвертация данных. Передача из ПВД03.06.2020, 16:53. Показов 461423. Ответов 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
Конвертация данных Конвертация данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|