|
Автоматическая подстановка номенклатуры при заполнении артикула | ☑ | ||
---|---|---|---|---|
0
noooobok
15.01.15
✎
09:58
|
Всем привет!
1с 8.2 упп 1.3 Требуется помощь в составлении запроса. Есть документ "Установка кодов номенклатуры покупателей". Необходимо сделать автозаполнение артикула при выборе номенклатуры и наоборот(автозаполнение номенклатуры при выборе артикула). с 1 частью задания я справился, а во второй возникли сложности. При выборе артикула номенклатура заполняется, но необходимо указать, чтобы номенклатура выбиралась только определенного типа (ГотоваяПродукция). Подсобите, пожалуйста. Текст процедуры: Процедура ТабличноеПоле1АртикулПриИзменении(Элемент) СтрокаТабличнойЧасти = ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные; //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.ВидНоменклатуры = ""ГотоваяПродукция"" | И Номенклатура.Артикул = Номенклатура.Артикул"; Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл // Вставить обработку выборки ВыборкаДетальныеЗаписи КонецЦикла; //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА Если ЗначениеЗаполнено(Элемент.Значение) Тогда СтрокаТабличнойЧасти.Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Элемент.Значение); Иначе СтрокаТабличнойЧасти.Номенклатура = ""; КонецЕсли; КонецПроцедуры |
|||
1
vicof
15.01.15
✎
10:09
|
"Номенклатура.ВидНоменклатуры = ""ГотоваяПродукция"""
= ЗНАЧЕНИЕ(Перечисление.ВидыНоменклатуры.ГотоваяПродукция) |
|||
2
Дмитрий
15.01.15
✎
10:12
|
Номенклатура.Артикул = Номенклатура.Артикул
может Номенклатура.Артикул = &Артикул и Запрос.УстановитьПараметр("Артикул", НужныйАртикул) |
|||
3
noooobok
15.01.15
✎
10:20
|
Дмитрий - Переменная не определена (НужныйАртикул)
vicof - не совсем понятно как оформить |
|||
4
Дмитрий
15.01.15
✎
10:23
|
(3) ну так нужно ее определить, присвоить ей значение артикула, по которому нужно искать номенклатуру
|
|||
5
noooobok
15.01.15
✎
12:30
|
(4) не смог осилить :( я понимаю, что это элементарно, но я пока еще "кран". Еще добавлю инфу: есть справочник ВидНоменклатуры с реквизитом ТипНоменклатуры. Тип данного реквизита ПеречислениеСсылка.ТипыНоменклатуры.
МБ как-нибудь задействовать это? |
|||
6
Дмитрий
15.01.15
✎
12:41
|
Процедура ТабличноеПоле1АртикулПриИзменении(Элемент)
СтрокаТабличнойЧасти = ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.ВидНоменклатуры = &ГотоваяПродукция | И Номенклатура.Артикул = &Артикул"; Запрос.УстановитьПараметр("ГотоваяПродукция", Справочники.ВидНоменклатуры.ИскатьПоНаименованию("Готовая продукция")); Запрос.УстановитьПараметр("Артикул", Элемент.Значение); Результат = Запрос.Выполнить(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл СтрокаТабличнойЧасти.Номенклатура = ВыборкаДетальныеЗаписи.Ссылка; КонецЦикла; КонецПроцедуры |
|||
7
Дмитрий
15.01.15
✎
12:41
|
(6)
Пропустил строчку ВыборкаДетальныеЗаписи = Результат.Выбрать(); |
|||
8
noooobok
15.01.15
✎
14:42
|
Решил проблему следующим образом:
Процедура ТабличноеПоле1АртикулПриИзменении(Элемент) СтрокаТабличнойЧасти = ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные; //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Артикул = &Артикул | И Номенклатура.ВидНоменклатуры = &ВидНоменклатуры"; Запрос.УстановитьПараметр("Артикул", СтрокаТабличнойЧасти.Артикул); Запрос.УстановитьПараметр("ВидНоменклатуры", Справочники.ВидыНоменклатуры.НайтиПоКоду("000000023")); Результат = Запрос.Выполнить().Выбрать(); КолВоЗаписей = Результат.Количество(); Если КолВоЗаписей = 1 Тогда //Выборка = Результат.Выбрать(); Результат.Следующий(); СтрокаТабличнойЧасти.Номенклатура = Результат.Ссылка; КонецЕсли; КонецПроцедуры Всем спасибо, кто откликнулся!!! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |