КД 2.0 Выгрузка по правилу, если заполнен реквизит

1. wladimirpav 11.11.22 11:54 Сейчас в теме
Задача следующая: нужно перенести справочник Номенклатура со следующим условием: если заполнен артикул в Источнике, то в приемнике ищем по правилу Артикул->Код, Иначе выгружается по обычному правилу. Сделал следующее: В ПКО Номенклатура ПередВыгрузкой написал:
Если ПустаяСтрока(Источник.Артикул) Тогда
	ИмяПКО = "Номенклатура";
Иначе
	ИмяПКО = "НоменклатураПоАртикулу";
КонецЕсли;

Все равно загружается новая номенклатура, даже если заполнен артикул. Подскажите, в какую сторону копать?
По теме из базы знаний
Найденные решения
14. user1203706 12 11.11.22 13:35 Сейчас в теме
в ПКС табличной части в ПриВыгрузке писать

Если ЗначениеЗаполнено(ОбъектКоллекции.Номенклатура.Артикул) Тогда
    ИмяПКО = "Номенклатура";
Иначе
    ИмяПКО = "НоменклатураПоАртикулу";
КонецЕсли;
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Prikum 3 11.11.22 11:57 Сейчас в теме
(1)Может быть
Если ЗначениеЗаполнено(Источник.Артикул) Тогда
    ИмяПКО = "Номенклатура";
Иначе
    ИмяПКО = "НоменклатураПоАртикулу";
КонецЕсли;
4. beldieff 11.11.22 12:12 Сейчас в теме
3. user1203706 12 11.11.22 12:10 Сейчас в теме
(1) проще в ПоляПоиска определить строку
5. wladimirpav 11.11.22 13:17 Сейчас в теме
6. wladimirpav 11.11.22 13:19 Сейчас в теме
(3) Поиск идет по внутреннему идентификатору
7. user1203706 12 11.11.22 13:20 Сейчас в теме
(6) если по внутреннему идентификатору, то о каком поиске по артикулу ты хочешь тогда ?
:)))
8. wladimirpav 11.11.22 13:22 Сейчас в теме
(7) Можно ли сделать так, чтобы при заполненном артикуле искало по нему, а если нет - то по внутреннему идентификатору?
9. user1203706 12 11.11.22 13:26 Сейчас в теме
(8) обычно наеборот, поиск по уиду, если не найден - по полям поиска.
Если как вам ннадо, то отключить галку поиска по внутреннему идентификатору, в ПоляПоиска вписать первым Артикул, вторым
получение ссылки из гуида, и если ссылка пустая, то объект не найден (тогда он новый элемент создаст)
10. user1203706 12 11.11.22 13:26 Сейчас в теме
сам гуид ссылки передать в параметр.
11. wladimirpav 11.11.22 13:27 Сейчас в теме
(9) А если 2 правила конвертации для объекта Номенклатура и в зависимости от того, заполнен ли артикул или нет, выбирать правило? Возможна такая реализация?
16. beldieff 11.11.22 13:45 Сейчас в теме
12. wladimirpav 11.11.22 13:30 Сейчас в теме
Либо такой вариант - после загрузки проверить, заполнен ли артикул (который передается в параметр) и подменить объект на нужный?
13. user1203706 12 11.11.22 13:32 Сейчас в теме
(11) возможно, написать 2 пко, и во всех местах пихать нужное имя ПКО + отключать
ТолькоПолучитьУзелСсылки = ложь; в перед выгрузкой номенклатуры
14. user1203706 12 11.11.22 13:35 Сейчас в теме
в ПКС табличной части в ПриВыгрузке писать

Если ЗначениеЗаполнено(ОбъектКоллекции.Номенклатура.Артикул) Тогда
    ИмяПКО = "Номенклатура";
Иначе
    ИмяПКО = "НоменклатураПоАртикулу";
КонецЕсли;
15. user1203706 12 11.11.22 13:41 Сейчас в теме
Или в самом ПКО номенклатура отключить галку по внутреннему ИД, а в поля поиска писать

Если НомерВариантаПоиска = 1 тогда
		СтрокаИменСвойствПоиска = "Артикул, ЭтоГруппа";
Иначе
       //по уиду или ищем в РС, или сразу лепим ссылку как Справочники.Номенклатура.ПолучитьССылку(Новый УникальныйИдентификатор(ПараметрыОбъекта.УИД)

  

	Запрос = Запросы.НайтиНоменклатуруПоПолямПоиска; //тут тупо текст запроса
	Запрос.УстановитьПараметр("УИД",ПараметрыОбъекта["УИД"]);

	Выборка = Запрос.Выполнить().Выбрать();
	Если Выборка.Следующий() Тогда
		ССылкаНаОбъект =  Выборка.Номенклатура;
		ПрекратитьПоиск  = Истина;
//		УстанавливатьУОбъектаВсеСвойстваПоиска =Ложь;
	КонецЕсли;
КонецЕсли;
Показать


сделать в ПКО параметр УИД, с галкой - поиск объекта, в Перед выгрузкой

Если Источник.Ссылка = Источник Тогда Значение = XMLСтрока(Источник); Иначе Значение = XMLСтрока(Источник.ССылка); КонецЕсли;
17. wladimirpav 11.11.22 13:51 Сейчас в теме
Оставьте свое сообщение
Вакансии
1С-Программист (интегратор Битрикс24)
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 100 000 руб.
Временный (на проект)

Разработчик 1С
Москва
зарплата от 150 000 руб.
Полный день

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

Разработчик 1С
Москва
зарплата от 150 000 руб. до 250 000 руб.
Полный день