Здравствуйте, есть регистр сведений "КонтрольУникальностиШПИ". ШПИ - некоторый буквенно-циферный код. Указывается в заказе покупателя. ЗаказПокупателя - регистратор данного регистра.
Есть обработка по обновлению этих самых ШПИ у заказов, она их подгружает из excel.
Теперь проблема: Мне нужно проверить есть ли в файле - ШПИ, которые есть в регистре, если есть, то эту строку я пропускаю при обработке. Если нет, то присваиваю заказу новый ШПИ.
Вот запрос:
ТаблицаЗначений = ЧтениеДанныхИзФайловНаСервере.ПрочитатьИзВременногоХранилища_xls(ФайлНаСервере.АдресВременногоХранилища, 1, 14);
ТаблицаЗначений.Колонки.Колонка16.Имя= ("НомерЗаказа");
ТаблицаЗначений.Колонки.Колонка10.Имя= ("ШПИ");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТабЗнч.ШПИ КАК ШПИ,
| ТабЗнч.НомерЗаказа КАК НомерЗаказа
|ПОМЕСТИТЬ ВТ_Заказы
|ИЗ
| &ТабЗнч КАК ТабЗнч
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_Заказы.НомерЗаказа
|ИЗ
| ВТ_Заказы КАК ВТ_Заказы
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтрольУникальностиШПИ КАК КонтрольУникальностиШПИ
| ПО ВТ_Заказы.ШПИ = КонтрольУникальностиШПИ.ШПИ
|ГДЕ
| КонтрольУникальностиШПИ.ШПИ ЕСТЬ NULL ";
Запрос.УстановитьПараметр("ТабЗнч", ТЗ);
Выборка = Запрос.Выполнить();
ШПИ = Выборка;
При выполнении запроса появляется ошибка "Тип не может быть выбран в запросе". Про нее я читал, требуется явное приведение типов, НО ТЗ заполняется из табдокумента... не могу понять как здесь сделать приведение типов или может вы подскажите другой вариант проверки на уникальность значений...
"ВЫБРАТЬ
| ВЫРАЗИТЬ(ТабЗнч.ШПИ КАК СТРОКА(300)) КАК ШПИ,
| ВЫРАЗИТЬ(ТабЗнч.НомерЗаказа КАК КАК СТРОКА(300)) КАК НомерЗаказа
|ПОМЕСТИТЬ ВТ_Заказы
|ИЗ
| &ТабЗнч КАК ТабЗнч";
В запросе как раз таки нельзя в моем случае) Уже решил задачу)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший