|
Как обратиться к ТЧ другого документа | ☑ | ||
---|---|---|---|---|
0
steeshiy
12.03.19
✎
13:39
|
Приветствую!
Подскажите, пожалуйста, как обратиться к ТЧ другого документа? В ТЧ документа ПСА необходимо подтянуть при выборе номенклатуры цену из ТЧ документа ПрайсЛист. т. е в справочнике Номеклатура цен на номенклатуры нет, только наименование номеклатуры. Цены устанавливаются в ТЧ документа ПрайсЛист. |
|||
1
DrWatson
12.03.19
✎
13:43
|
(0) При выборе номенклатуры вызываешь функцию получения цены номенклатуры. Как получать? Запросом, наверное.
|
|||
2
catena
12.03.19
✎
13:43
|
Табличная часть.Найти (Tabular section.Find)
Табличная часть (Tabular section) Найти (Find) Синтаксис: Найти(<Значение>, <Колонки>) Параметры: <Значение> (обязательный) Тип: Произвольный. Искомое значение. <Колонки> (необязательный) Тип: Строка. Список имен колонок, в которых будет осуществляться поиск, разделенных запятыми. Если параметр не указан, поиск осуществляется по всей табличной части. Значение по умолчанию: Пустая строка. Возвращаемое значение: Тип: Строка табличной части; Неопределено. Строка, которая содержит искомое значение. Если значение не найдено, то возвращается значение Неопределено. Описание: Осуществляет поиск значения в указанных колонках табличной части. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Примечание: Метод эффективно использовать для поиска уникальных значений. Пример: НайденнаяСтрока = Состав.Найти(ТекТовар, "Номенклатура"); Если НайденнаяСтрока = Неопределено Тогда Предупреждение(НСтр("ru = 'Товар не найден!';" + " en = 'Article not found!'")); Иначе Количество = НайденнаяСтрока.Количество; КонецЕсли; |
|||
3
Aleksandr N
12.03.19
✎
13:45
|
Все-таки такую информацию лучше получать из регистров.
|
|||
4
steeshiy
12.03.19
✎
13:53
|
Получил запросом. Но, при изменении номеклатуры, цена остается прежней..?
|
|||
5
steeshiy
12.03.19
✎
14:47
|
В общем, в прайс листе номеклатуры много, а я получил только по первой строке...
Как получить именно из нужной строки? Условие в запросе? Сейчас так: &НаСервере Функция ПолучитьЦену() //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПрайсЛистСостав.ВидЛома, | ПрайсЛистСостав.Цена |ИЗ | Документ.ПрайсЛист.Состав КАК ПрайсЛистСостав"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Возврат ВыборкаДетальныеЗаписи.Цена; КонецЦикла; //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА КонецФункции // () |
|||
6
sqr4
12.03.19
✎
14:53
|
(5) не надо творить фигню, делайте нормально. Данные из документа прайс лист пишутся в регистр или должны писаться, обязаны. Дальше получаете данные из регистра запросом. А запрос по документам в данном случае это и функционал не рабочий и хреновое обучение.
И в запросы надо условия ставить!!! И если ничего не найдено, то что вернет ваша функция??? |
|||
7
DrWatson
12.03.19
✎
17:19
|
(5) Функция ПолучитьЦену() по замыслу получает цену чего? Наверное, какой-то определенной номенклатуры. Откуда функция узнает для какой номенклатуры нужно получить цену? Самый правильный вариант будет - передать параметром функции.
Дальше, что с этой ссылкой делать. В конструкторе на закладке Условия добавить одно условие ПрайсЛистСостав.Номенклатура = &Номенклатура. В результате появится строчка в запросе и строчка в коде для установки параметра запроса. Вот эту номенклатуру в параметр запроса и нужно передать. Конечно это не всё что следует предусмотреть. Но на вопрос из (5) отвечает. |
|||
8
breezee
12.03.19
✎
17:25
|
Почитайте книжку. Рано вам еще цену получать. Там есть примеры
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |