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

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

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

Оффлайн bkmz_1_

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

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

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


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

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

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>


Оффлайн Vladimir_Sh

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

Оффлайн bkmz_1_

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

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

Оффлайн Vladimir_Sh

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

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

Оффлайн Rasty

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

Оффлайн bkmz_1_

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



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

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

Так?

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

Оффлайн Rasty

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

Оффлайн bkmz_1_

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

Оффлайн Rasty

  • *****
  • Сообщений: 963
  • РЕПУТАЦИЯ: 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
Просмотров: 5533
Последний ответ 06 Фев 2012, 10:46
от cska-fanat-kz
Заполнение поля табличной части документа из табличной части справочника.

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

Ответов: 3
Просмотров: 2593
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner
Работа с формой Справочника "Физ.Лица" в ЗУП 2.5

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

Ответов: 3
Просмотров: 3161
Последний ответ 15 Дек 2011, 00:04
от Vit1501
Удалить запись из справочника "Сотрудники" уволенного

Автор Alex56Раздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 2459
Последний ответ 02 Фев 2014, 21:37
от LordWizard
Как в 1С 8.2 при проведении документа заполнить элемент справочника информацией из документа?

Автор Галина55555Раздел Беседка

Ответов: 1
Просмотров: 4174
Последний ответ 01 Июл 2014, 16:44
от Галина55555

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
170 Сообщений
alex0402
78 Сообщений
MuI_I_Ika MuI_I_Ika
41 Сообщений
alexandr_ll
38 Сообщений
LexaK
36 Сообщений
crow1983
31 Сообщений
sertak sertak
27 Сообщений
Vzonder
21 Сообщений
BuhRust
20 Сообщений
дфтын дфтын
17 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal