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

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

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

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

Оффлайн bkmz_1_

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



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

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

Так?

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

Оффлайн Rasty

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

Оффлайн bkmz_1_

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

Оффлайн Rasty

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

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

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

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

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

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

Ответов: 5
Просмотров: 1897
Последний ответ 05 Мар 2017, 14:36
от Igor100500
Изменение цвета при подборе сотрудника в форме списка справочника "Сотрудники организации" для документа "Зарплата к выплате организаций" ЗУП 2.5

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

Ответов: 2
Просмотров: 152
Последний ответ 12 Окт 2017, 14:02
от wise

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

oleg-x
89 Сообщений
alex0402
43 Сообщений
AIFrame
42 Сообщений
Oldman06
31 Сообщений
vitasw
29 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
29 Сообщений
Golickoff Golickoff
27 Сообщений
Liv98 Liv98
20 Сообщений
MuI_I_Ika MuI_I_Ika
18 Сообщений
DmitriyF DmitriyF
14 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal