Имя: Пароль:
1C
1С v8
Сравнение значений из ТабЗнач с реквизитами справочника
0 alluckard
 
05.04.12
22:54
Прошу помощи в следующем вопросе.

Есть некая таблица значений, заполненная из *.xls файла.
В ней данные-"наименования номенклатуры"(напр).
Суть в том, что мне нужно, пробежав по ТабЗнач, определить наличие записи в справочнике с подобным наименованием, и если его нет, то создать.

Следственно проблема: Как сравнить значение из ТабЗнач с реквизитом справочника(Наименование)?

Моск кипит, дайте идею плз.
1 Ork
 
05.04.12
22:56
(0) НайтиПоНаименованию() не?
2 KarpovDeniska
 
05.04.12
22:56
(0) идея: перебирай строки ТЗ и ищи по наименованию
3 Лефмихалыч
 
05.04.12
22:58
(0) запросом. ТЗ засунь во временную таблицу, потом ее соедини со справочником по наименованию. Делофта...
4 m-serg74
 
05.04.12
23:00
(0) я бы (3) послушал - ибо правильный совет
5 alluckard
 
06.04.12
22:32
Вот что я выстрадал:


ТабЗнач = ЭлементыФормы.Таблица1.Значение;
//Присвоили ранее загруженную из *.xls файла таблицу
   Для Каждого стртзТабЗнач Из ТабЗнач Цикл
       Переменная = 0;
       Запрос = Новый Запрос;
       Запрос.Текст =
       "ВЫБРАТЬ
       |    <ИмяСправочника>.Наименование
       |ИЗ
       |    Справочник.<ИмяСправочника> КАК <ИмяСправочника>
       |ГДЕ
       |    <ИмяСправочника>.Наименование ПОДОБНО Наименование";
       
       Наименование = стртзТабЗнач.<НаименованиеКолонки>;
       Запрос.УстановитьПараметр("Наименование", Наименование);
       Результат = Запрос.Выполнить().Выгрузить();
       Для Каждого стртзРезультат Из Результат Цикл
           Если стртзРезультат.Наименование = Наименование Тогда
               Переменная = Переменная+1;
           КонецЕсли;
       КонецЦикла;
       Если Переменная > 0 Тогда
           Сообщить(Наименование+" Уже существует в справочнике");
       ИначеЕсли Переменная = 0 Тогда
           НовыйЭлементОЭ = Справочники.<ИмяСправочника>.СоздатьЭлемент();
           НовыйЭлементОЭ.Наименование = Наименование;
           НовыйЭлементОЭ.Записать();
       КонецЕсли;    
   КонецЦикла;    

Т.е. если исследуемое значение хоть раз проскочит в наименованиях определённого справочника, то <Переменная> будет больше 0, а значит подобная запись в справочнике уже есть. а если <Переменная> так и останется равна 0, начит пора делать новую запись.

Может кто есчо может предложить варианты?(интереса ради)