|
Сравнение значений из ТабЗнач с реквизитами справочника
| ☑ |
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, начит пора делать новую запись.
Может кто есчо может предложить варианты?(интереса ради)
|
|