Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
26 Июл 2017, 03:44
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Как выбрать цену из справочника Номенклатура по названию товара  (Прочитано 1191 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн bkmz_1_

  • *
  • Сообщений: 24
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-07-18
    • Skype: bkmz_1_
  • Сайт: 
  • Профессия: Бухгалтер
Как выбрать цену из справочника Номенклатура по названию товара?
Я пишу так:

&НаКлиенте
Процедура РасходныйОрдерНаименованиПриИзменении(Элемент)
Стр = Элементы.РасходныйОрдер.ТекущиеДанные;
Наименование = Стр.Наименование;
ВыбратьЦену(Наименование);
КонецПроцедуры

&НаСервере
Процедура ВыбратьЦену(Наименование)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|      Номенклатура.Цена
|ИЗ
|      Справочник.Номенклатура КАК Номенклатура
|ГДЕ
|      Номенклатура.Наименование = &Наименование";
Запрос.УстановитьПараметр("Наименование", Наименование);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
Стр = Элементы.РасходныйОрдер.ТекущиеДанные;
Стр.Цена = Выборка.Цена;
КонецЕсли;
КонецПроцедуры;


отладчик показывает что в "Выборка" ошибка чтения значения.

Что я не правильно делаю?
Чем ленивее человек, тем больше его труд похож на подвиг


Оффлайн Vladimir_Sh

  • 1С:Специалист
  • ****
  • Сообщений: 356
  • РЕПУТАЦИЯ: 68
  • КПД: 19%
  • Регистрация: 2015-10-16
  • Компания: Центр бизнес решений "ALT"
  • Профессия: Разработчик 1С
1. Условие по "строке" - это зло!
2. Вам СЮДА здесь обсуждалось подобное. Ошибка не в запросе, а в том как Вы пытаетесь просмотреть результат в отладке.
Если я Вам помог, нажми - Спасибо!

Оффлайн bkmz_1_

  • *
  • Сообщений: 24
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-07-18
    • Skype: bkmz_1_
  • Сайт: 
  • Профессия: Бухгалтер
Ничего я не понял из ссылки. Дело в том что проблема не в том что я не могу прочитать в отладчике, код не делает то что я хочу.
Я в консоле выполняю запрос этот и он возвращает результат. А если выполняю в конфигурации в документе то ничего не происходит.
Цена в табличной части документа не появляется.

Чем ленивее человек, тем больше его труд похож на подвиг

Оффлайн Vladimir_Sh

  • 1С:Специалист
  • ****
  • Сообщений: 356
  • РЕПУТАЦИЯ: 68
  • КПД: 19%
  • Регистрация: 2015-10-16
  • Компания: Центр бизнес решений "ALT"
  • Профессия: Разработчик 1С
Код делает ровно то что Вы написали. Проверяйте следующее:
1. Что передается в параметр запроса. Аналогичное сделайте в консоли. (Вплоть до символа и пробелов и прочего.)
2. Куда вы это передаете?

У вас в строке (т.е. в "Стр") есть ссылка на Номенклатуру? Если да то переделайте запрос под ссылку так будет меньше возможности ошибиться.
Если я Вам помог, нажми - Спасибо!

Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 137
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
то что в выборке смотрится либо в цикле
Пока Выборка.Следующий() Цикл
    блаблабла
КонецЦикла
Либо после Выборка.Следующий()
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн bkmz_1_

  • *
  • Сообщений: 24
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-07-18
    • Skype: bkmz_1_
  • Сайт: 
  • Профессия: Бухгалтер
Я прошу прощение за свою не расторопность, но я смутно понимаю что надо смотреть. Вот это имелось ввиду?



И что дальше мне делать? Где ошибка?
Добавлено: 15 Янв 2016, 18:15

Либо после Выборка.Следующий()

Так?

Чем ленивее человек, тем больше его труд похож на подвиг

Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 137
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
поставте точку остановы на месте выборка.следующий() потом посмотрите значение "выборка.следующий()" если истина, то есть данные, если ложь, то данных нет
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн bkmz_1_

  • *
  • Сообщений: 24
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-07-18
    • Skype: bkmz_1_
  • Сайт: 
  • Профессия: Бухгалтер
Чем ленивее человек, тем больше его труд похож на подвиг

Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 137
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
Ничего оно не выбирает
а я и не заметил, тип наименования ссылка, ну да
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн bkmz_1_

  • *
  • Сообщений: 24
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-07-18
    • Skype: bkmz_1_
  • Сайт: 
  • Профессия: Бухгалтер
Так что мне делать?
Добавлено: 15 Янв 2016, 22:01

Решился вопрос следующим образом

&НаКлиенте
Процедура РасходныйОрдерНаименованиПриИзменении(Элемент)
Стр = Элементы.РасходныйОрдер.ТекущиеДанные;
Наименование = Стр.Наименование;
Стр.Цена = ВыбратьЦену(Наименование);
КонецПроцедуры

&НаСервереБезКонтекста
Функция ВыбратьЦену(Наименование)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               | Номенклатура.Цена КАК Цена
               |ИЗ
               | Справочник.Номенклатура КАК Номенклатура
               |ГДЕ
               | Номенклатура.Ссылка = &Наименование";
Запрос.УстановитьПараметр("Наименование", Наименование);
Результат = Запрос.Выполнить();
//Сообщение = Новый СообщениеПользователю;
//Если Результат.Пустой() Тогда
// Сообщение.Текст = "Записей по условию не найдено";
// Сообщение.Сообщить();
// Возврат;
//КонецЕсли;
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.Цена;
КонецЕсли;
КонецФункции;
Добавлено: 15 Янв 2016, 22:03

Ошибка была в том что я в условии сравнивал не наименование не с ссылкой. И в том что я использовал процедуру а не функцию.
Чем ленивее человек, тем больше его труд похож на подвиг

Последний раз редактировалось: bkmz_1_; 15 Янв 2016, 22:03. Причина: Объединение сообщений


Теги:
 

Как вызвать "Анализ субконто" из справочника "Контрагенты"

Автор EnigManРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 6067
Последний ответ 06 Фев 2012, 10:46
от cska-fanat-kz
Заполнение поля табличной части документа из табличной части справочника.

Автор Kurt_WagnerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 3773
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner
Заполнение табличной части документа реквизитами табличной части справочника

Автор kaf_infoРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 301
Последний ответ 10 Май 2017, 20:44
от ilnur75
Как сделать, чтобы поле в документе имело тип "ссылка на поле справочника"?

Автор друганРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 1682
Последний ответ 05 Мар 2017, 14:36
от Igor100500
Работа с формой Справочника "Физ.Лица" в ЗУП 2.5

Автор Митя_Просто_МитяРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 3564
Последний ответ 15 Дек 2011, 00:04
от Vit1501

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

alex0402
92 Сообщений
oleg-x
79 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
68 Сообщений
Golickoff Golickoff
51 Сообщений
ilyay ilyay
42 Сообщений
AIFrame
42 Сообщений
Амал
30 Сообщений
Dethmontt Dethmontt
22 Сообщений
lansy
22 Сообщений
wise wise
21 Сообщений

* Кто онлайн

  • Точка Гостей: 162
  • Точка Скрытых: 0
  • Точка Пользователей: 7
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal