Добрый день!
Нужна небольшая помощь с кодом...
Сразу оговорюсь, в 1с-ке пока не силен.
В общем, сейчас дописываю стандартную обработку "обмен данными с Клиентбанком" для импорта банковских выписок из формата .csv в 1С-Бух(укр).
Основной функционал уже работает, но столкнулся с проблемой.
Из файла с банковской выпиской подтягивается ЕГРПОУ и сравнивается с ЕГРПОУ в Справочнике "Контрагенты", а уже оттуда в документ "Банковская выписка" подтягивается полное название контрагента.
В самом справочнике у бухов имеется несколько на элементов помеченных на удаление с прошлых лет.
И вот при совпадении ЕГРПОУ обработка выбирает "помеченный на удаление" элемент вместо нормального.
К сожалению, никак не разберусь сам, как правильно реализовать...
Пробовал разные варианты с циклами, условиями и прочее, но безуспешно. Спр.ПометкаУдаления() никак не срабатывает так, как мне надо.
Был бы очень благодарен, если кто-то подскажет, что мне поправить в коде:
Если (Нашли = 1) и (Спр.ПометкаУдаления()=0) Тогда // нашли
тВыписка.сКонтрагент = Спр.ТекущийЭлемент();
тВыписка.Контрагент = СокрЛП(Спр.ТекущийЭлемент());
ИначеЕсли (Спр.ПометкаУдаления()=1) Тогда
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент() = 1 Цикл
Сообщить(Спр.ТекущийЭлемент());
Сообщить(Спр.ПолучитьАтрибут(ТипРеквизитаОКПО));
Сообщить(ОКПО);
Если (Спр.ПолучитьАтрибут(ТипРеквизитаОКПО) = ОКПО) и (Спр.ПометкаУдаления()=0) Тогда
Сообщить(Спр.ПолучитьАтрибут(ТипРеквизитаОКПО));
Сообщить(ОКПО);
тВыписка.сКонтрагент = Спр.ТекущийЭлемент();
тВыписка.Контрагент = СокрЛП(Спр.ТекущийЭлемент());
Прервать;
Иначе
// Сообщить(Спр.ТекущийЭлемент());
Продолжить;
КонецЕсли;
КонецЦикла;
Иначе // не нашли (заполняем еще и тКонтрагенты)
тВыписка.Контрагент = КонтрагентНаименование;
тВыписка.Предупреждение = 3;
ТКонтрагенты.НоваяСтрока();
ТКонтрагенты.НСтроки = ТКонтрагенты.НомерСтроки; // номер строки для связи с тВыписка
ТВыписка.ссылкаНатКонтрагентов = ТКонтрагенты.НСтроки;
ТКонтрагенты.фВкл = 2;
// ОКПО - как получили из файла от клиент-банка
ТКонтрагенты.ОКПО = СокрЛП(Сп.Получить("ОКПО"));
ТКонтрагенты.Контрагент = КонтрагентНаименование;
ТКонтрагенты.РСчет = РСчет;
ТКонтрагенты.МФО = МФО;
Если Метаданные.Справочник("Банки").Выбран() = 1 Тогда
СпрБ = СоздатьОбъект("Справочник.Банки");
Если СпрБ.НайтиПоКоду(МФО,0) = 1 Тогда
ТКонтрагенты.Банк = СокрЛП(СпрБ.ТекущийЭлемент());
ТКонтрагенты.сБанк = СпрБ.ТекущийЭлемент();
Иначе
ТКонтрагенты.Банк = Банк;
КонецЕсли;
Иначе
ТКонтрагенты.Банк = Банк;
КонецЕсли;
КонецЕсли;
Вот тут что-то не срабатывает, хотя вроде должно:
(Спр.ПолучитьАтрибут(ТипРеквизитаОКПО) = ОКПО)