|
Не получается в запросе установить параметр | ☑ | ||
---|---|---|---|---|
0
НатГолубева777
23.03.20
✎
10:57
|
Добрый день. В первом запросе проверяю на пустую ссылку в регистре сведений. И если ссылка пустая то через 2-й запрос добавляю в регистр сведений именно ту позицию, которую установила в параметре "Номенклатура". "Номенклатура"определена в начале процедуры....Но почему то он не видит этого? Помогите пожалуйста.
Процедура КнопкаВыполнитьНажатие(Элемент) Путь= Константы.ПутьДоФайлов.Получить()+"\"; Док=ПолучитьCOMОбъект(Путь+"GS.xls"); Номенклатура=Док.Sheets(1).Cells(2,8).Value; счСтроки=2; Пока СокрЛП(Номенклатура) <> "" Цикл Номенклатура=Док.Sheets(1).Cells(СчСтроки,8).Value; ШК=Док.Sheets(1).Cells(СчСтроки,2).Value ; Сообщить(Строка(Номенклатура)+"-"+Строка(ШК)); счСтроки=счСтроки+1; Прайс = РегистрыСведений.Прайс.СоздатьНаборЗаписей(); Запрос = Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | Прайс.Номенклатура.Ссылка КАК Ссылка2 |ИЗ | РегистрСведений.Прайс КАК Прайс |ГДЕ | Прайс.Номенклатура.Ссылка В ИЕРАРХИИ(&Ссылка2)"; Запрос.УстановитьПараметр("Ссылка2", Номенклатура); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи=Результат.Выбрать(); Если Результат.Пустой() Тогда Запрос = Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | Номенклатура.Ссылка КАК Ссылка, | Номенклатура.Наименование КАК Наименование |ИЗ | Справочник.Номенклатура КАК Номенклатура"; Запрос.УстановитьПараметр("Ссылка", Номенклатура); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи=Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл //Прайс.Отбор.Номенклатура.Установить(Номенклатура); НоваяЗаписьПрайс = Прайс.Добавить(); НоваяЗаписьПрайс.Номенклатура = ВыборкаДетальныеЗаписи.Ссылка; КонецЦикла; КонецЕсли; Прайс.Записать() КонецЦикла; Док.Application.Quit(); КонецПроцедуры |
|||
1
butterbean
23.03.20
✎
11:00
|
(0) Из Excel можно получить только примитивные типы, а в твоем запросе ожидается передача ссылки на объект справочника Номенклатура
|
|||
2
Homer
23.03.20
✎
11:01
|
А где "Где"
|ИЗ | Справочник.Номенклатура КАК Номенклатура"; |
|||
3
НатГолубева777
23.03.20
✎
11:02
|
Точно
|
|||
4
НатГолубева777
23.03.20
✎
11:38
|
|ИЗ
| Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка В ИЕРАРХИИ(&Ссылка3)"; Запрос.УстановитьПараметр("Ссылка3", Номенклатура); Добавила. Все равно не видит параметр. Что посоветуете с параметром. Как его преобразовать? |
|||
5
НатГолубева777
23.03.20
✎
12:01
|
есть кто может подсказать?
|
|||
6
Homer
23.03.20
✎
12:07
|
СправочникМенеджер.<Имя справочника> (CatalogManager.<Catalog name>)
НайтиПоНаименованию (FindByDescription) Синтаксис: НайтиПоНаименованию(<Наименование>, <ТочноеСоответствие>, <Родитель>, <Владелец>) Параметры: <Наименование> (обязательный) Тип: Строка. Строка, содержащая искомое наименование. <ТочноеСоответствие> (необязательный) Тип: Булево. Определяет режим поиска по полному соответствию. Поиск будет успешным, если строка поиска: в случае значения параметра Ложь - будет соответствовать левой части наименования; в случае значения параметра Истина - будет полностью совпадать с наименованием (за исключением "хвостовых" пробелов в наименовании). Значение по умолчанию: Ложь. <Родитель> (необязательный) Тип: СправочникСсылка.<Имя справочника>. Родитель, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться во всем справочнике. <Владелец> (необязательный) Тип: СправочникСсылка.<Имя справочника>. Владелец, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться во всем справочнике. Возвращаемое значение: Тип: СправочникСсылка.<Имя справочника>, Неопределено. Ссылка на найденный элемент справочника. Если не существует ни одного элемента с требуемым наименованием, то будет возвращена пустая ссылка. Если для справочника наименование не задано (длина = 0) и поиск выполняется по полному соответствию, то будет возвращено Неопределено. Описание: Осуществляет поиск элемента по его наименованию. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер). Примечание: Если существует несколько элементов с указанным наименованием, то будет найден только один из них. Пример: СтрокаНаименования = "USD"; Валюты = Справочники.Валюты; НайденнаяСсылка = Валюты.НайтиПоНаименованию(СтрокаНаименования); Если НайденнаяСсылка = Валюты.ПустаяСсылка() Тогда Сообщить("Валюты """ + СтрокаНаименования + """ еще нет"); КонецЕсли; |
|||
7
hhhh
23.03.20
✎
12:08
|
(5) Запрос.УстановитьПараметр("Ссылка3", Справочники.Номенклатура.НайтиПоНаименованию(Номенклатура));
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |