Имя: Пароль:
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, начит пора делать новую запись.

Может кто есчо может предложить варианты?(интереса ради)
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn