Как вытянуть данные из справочника в документе
21.02.11, 11:29
Общительный
Группа: Пользователи
Сообщений: 12
Спасибо сказали: 0 раз
Рейтинг: 0
Вот такпытаюсь:
&НаКлиенте Процедура СписокТоваровНоменклатураПриИзменении(Элемент) СтрокаТабличнойЧасти = Элементы.СписокТоваров.ТекущиеДанные; СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.ИзвлечЦену(Объект.Дата, СтрокаТабличнойЧасти.Номенклатура, Объект.ВидЦены); СтрокаТабличнойЧасти.ЕдиницыИзмерения = Номенклатура.ЕдиницыИзмерения; КонецПроцедуры
Выдает ошибку: "{Документ.ЗаказТоваров.Форма.ФормаДокумента.Форма(8,42)}: Переменная не определена (Номенклатура)
СтрокаТабличнойЧасти.ЕдиницыИзмерения = <<?>>Номенклатура.ЕдиницыИзмерения; (Проверка: Тонкий клиент)"
тоесть где фукции процедуры писать я в курсе.
не могу понять откуда вытащить ссылку на выбраный с справочнике объект.
21.02.11, 11:32
Танцор с Бубном
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0
Прежде чем работать со справочником его надо создать.
Т.е.
Спр = СоздатьОбъект("Справочник.Номенклатура");
И дальше уже манипулировать различными его элементами с помощью методов.
С 8.2 я практически не работал.Возможно я ошибаюсь.Но попробуйте так.
21.02.11, 11:37
Ветеран
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0
Цитата(pashik @ 21.02.11, 12:29)
Вот такпытаюсь: &НаКлиенте Процедура СписокТоваровНоменклатураПриИзменении(Элемент) СтрокаТабличнойЧасти = Элементы.СписокТоваров.ТекущиеДанные; СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.ИзвлечЦену(Объект.Дата, СтрокаТабличнойЧасти.Номенклатура, Объект.ВидЦены); СтрокаТабличнойЧасти.ЕдиницыИзмерения = Номенклатура.ЕдиницыИзмерения; КонецПроцедуры Выдает ошибку: "{Документ.ЗаказТоваров.Форма.ФормаДокумента.Форма(8,42)}: Переменная не определена (Номенклатура) СтрокаТабличнойЧасти.ЕдиницыИзмерения = <<?>>Номенклатура.ЕдиницыИзмерения; (Проверка: Тонкий клиент)" тоесть где фукции процедуры писать я в курсе. не могу понять откуда вытащить ссылку на выбраный с справочнике объект.
Сходить на сервер за данными.
Что-то типа
&НаКлиенте Процедура ПриИзмененииНоменклатуры(.....) ....... ЗадатьИзменитьЕдиницуНаСервере(); ....... КонецПроцедуры &НаСервере Процедура ЗадатьИзменитьЕдиницуНаСервере() Номенклатура.Единицы...... КонецПроцедуры
----------------------------------------------------------------------------------- Единственный, интуитивно понятный интерфейс - мамкина сиська! Всему остальному надо учиться! (с) Не знаю кто....
21.02.11, 12:02
Ветеран
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0
Не думаю что в 8.2 прокатит такая схема.
На 8.1 (8.0) наверное да.
Форма не имеет прямого доступа к данным.
Еще вроде как можно покурить:
ДанныеФормыВЗначение(<Объект>, <Тип>) ЗначениеВДанныеФормы(<Значение>, <Объект>)
----------------------------------------------------------------------------------- Единственный, интуитивно понятный интерфейс - мамкина сиська! Всему остальному надо учиться! (с) Не знаю кто....
21.02.11, 12:49
Общительный
Группа: Пользователи
Сообщений: 12
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(Vofka @ 21.02.11, 12:57)
&НаКлиенте Процедура СписокТоваровНоменклатураПриИзменении(Элемент) СтрокаТабличнойЧасти = Элементы.СписокТоваров.ТекущиеДанные; СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.ИзвлечЦену(Объект.Дата, СтрокаТабличнойЧасти.Номенклатура, Объект.ВидЦены); СтрокаТабличнойЧасти.ЕдиницыИзмерения = СтрокаТабличнойЧасти.Номенклатура.ЕдиницыИзмерения; КонецПроцедуры
Так?
При выборе объекта выдает ошибку: "Поле объекта не обнаружено: Единицы измерения".
А правильно ли такое обращение - СтрокаТабличнойЧасти.Номенклатура.ЕдиницыИзмерения ?
Здесь Номенклатура - это реквизит табличной части ("СписокТоваров") документа.
22.02.11, 7:49
Общительный
Группа: Пользователи
Сообщений: 26
Спасибо сказали: 5 раз
Рейтинг: 0
&НаКлиенте Процедура СписокТоваровНоменклатураПриИзменении(Элемент) ДанныеСтруктура = новый Структура(Цена,ЕдиницаИзмерения); СтрокаТабличнойЧасти = Элементы.СписокТоваров.ТекущиеДанные; РаботаСоСправочниками.ИзвлечьЦенуИНдиницеИзмерения(Объект.Дата, СтрокаТабличнойЧасти.Номенклатура, Объект.ВидЦены, ДанныеСтруктура); СтрокаТабличнойЧасти.Цена = ДанныеСтруктура.Цена; СтрокаТабличнойЧасти.ЕдиницыИзмерения = ДанныеСтруктура.ЕдиницыИзмерения; КонецПроцедуры &НаСервереБезКонтекста Процедура ИзвлечьЦенуИНдиницеИзмерения(Дата,Товар,ВидЦена,Данные) // получить цену и единицу измерения и засунуть их в струтктру Данные КонецПроцедуры
23.02.11, 15:33
Общительный
Группа: Пользователи
Сообщений: 26
Спасибо сказали: 5 раз
Рейтинг: 0
Цитата(logist @ 22.02.11, 15:51)
Я бы сделал так:
&НаСервереБезКонтекста Функция ПолучитьЕдиницуИзмерения(Номенклатура) Возврат Номенклатура.ЕдиницыИзмерения; КонецФункции &НаКлиенте Процедура СписокТоваровНоменклатураПриИзменении(Элемент) СтрокаТабличнойЧасти = Элементы.СписокТоваров.ТекущиеДанные; Если ЗначениеЗаполнено(СтрокаТабличнойЧасти.Номенклатура) Тогда СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.ИзвлечЦену(Объект.Дата, СтрокаТабличнойЧасти.Номенклатура, Объект.ВидЦены); СтрокаТабличнойЧасти.ЕдиницыИзмерения = ПолучитьЕдиницуИзмерения(СтрокаТабличнойЧасти.Номенклатура); Иначе СтрокаТабличнойЧасти.Цена = ""; СтрокаТабличнойЧасти.ЕдиницыИзмерения = Неопределено; КонецЕсли; КонецПроцедуры
Я бы не стал так делать.
У вас 2 серверных вызова РаботаСоСправочниками.ИзвлечьЦену и ПолучитьЕдиницуИзмерения
В моем варианте выше только 1
Не нашли ответа на свой вопрос?
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!