Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Проблема с получением свойств номенклатуры в запросе          
rpodgornyy Подменю пользователя
сообщение 19.05.12, 16:28
Сообщение #1

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 139
Из: Киев
Спасибо сказали: 14 раз
Рейтинг: 0

Конфигурация УТ для Украины 2.3.15.1

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

ЗапросТовары = Запрос.Выполнить().Выгрузить();




При этом выдаётся ошибка: "Поле не входит в группу ЗначенияСвойствОбъектов.Значения" <<?>> ЗначенияСвойствОбъектов.Значения КАК Значение...

logist Подменю пользователя
сообщение 19.05.12, 16:35
Сообщение #2

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(rpodgornyy @ 19.05.12, 17:28) *
при этом выдаётся ошибка: "Поле не входит в группу ЗначенияСвойствОбъектов.Значения"

Текст ошибки написан вполне понятно, на русском языке, в чем проблема? Поле отсутствует в группировке, это видно из текста запроса.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 19.05.12, 16:36
Сообщение #3

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13957
Из: Киев
Спасибо сказали: 4524 раз
Рейтинг: 3647.7

Группировка - это то, что идет после конструкции СГРУППИРОВАТЬ ПО

rpodgornyy Подменю пользователя
сообщение 19.05.12, 18:30
Сообщение #4

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 139
Из: Киев
Спасибо сказали: 14 раз
Рейтинг: 0

В раздел "Сгруппировать ПО" добавил ЗначенияСвойствОбъектов.Значение. Ошибка исчезла, однако параметр Гарантия в печатной форме пустой... upset.gif

logist Подменю пользователя
сообщение 19.05.12, 19:10
Сообщение #5

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(rpodgornyy @ 19.05.12, 19:30) *
параметр Гарантия в печатной форме пустой...

Вероятно проблема здесь:
 | ПО РеализацияТоваровУслуг.Номенклатура = ЗначенияСвойствОбъектов.Свойство

Потому что Номенклатура это не Свойство а Объект.

Видимо как-то так:
    ИЗ
        Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
            ПО РеализацияТоваровУслуг.Номенклатура = ЗначенияСвойствОбъектов.Объект
    ГДЕ
        РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
        И ЗначенияСвойствОбъектов.Свойство = &Свойство

Где параметр "Свойство" это свойство номенклатуры в котором и содержится нужное значение (если не понятно - можно посмотреть соответствующий регистр, что там отображается в колонке "Свойство").


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: rpodgornyy,

rpodgornyy Подменю пользователя
сообщение 20.05.12, 9:51
Сообщение #6

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 139
Из: Киев
Спасибо сказали: 14 раз
Рейтинг: 0

Поменял на "Объект" - получилось! Спасибо! icon_beer17.gif

rpodgornyy Подменю пользователя
сообщение 24.07.12, 19:11
Сообщение #7

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 139
Из: Киев
Спасибо сказали: 14 раз
Рейтинг: 0

Решил поднять тему, т.к. столкнулся с небольшой трудностью. Когда было только одно свойство в Номенклатуре, я не использовал параметр "И ЗначенияСвойствОбъектов.Свойство = &Свойство". Теперь добавились ещё свойства и запрос делает выборку по всем свойствам, а не конкретно по Гарантии. Я установил параметр:

Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Гарантия"));


Но при данном параметре не выводится вообще ничего...






logist Подменю пользователя
сообщение 24.07.12, 20:10
Сообщение #8

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Значит не находит оно по наименованию (например наименование содержит пробелы или другие символы), попробуйте использовать НайтиПоКоду.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

rpodgornyy Подменю пользователя
сообщение 24.07.12, 20:27
Сообщение #9

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 139
Из: Киев
Спасибо сказали: 14 раз
Рейтинг: 0

Хм... ставлю "НайтиПоКоду(000000001)" , код, соответственно код гарантии, всё равно ничего не выводится...

logist Подменю пользователя
сообщение 24.07.12, 20:40
Сообщение #10

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(rpodgornyy @ 24.07.12, 21:27) *
НайтиПоКоду(000000001)

А если:
НайтиПоКоду("000000001")



Signature
Личные бесплатные консультации не даю, для этого есть форум!

rpodgornyy Подменю пользователя
сообщение 24.07.12, 20:44
Сообщение #11

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 139
Из: Киев
Спасибо сказали: 14 раз
Рейтинг: 0

Увы, такая же беда sad.gif

logist Подменю пользователя
сообщение 24.07.12, 20:49
Сообщение #12

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Ну если найти по коду не работает, тогда вариант один - к гадалке - снимать порчу...


Signature
Личные бесплатные консультации не даю, для этого есть форум!

rpodgornyy Подменю пользователя
сообщение 24.07.12, 21:01
Сообщение #13

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 139
Из: Киев
Спасибо сказали: 14 раз
Рейтинг: 0

Дык, ну конечно же!!! Свойство- то текстовый элемент:
Запрос.УстановитьПараметр("Свойство", СокрЛП (ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("000000001")));

logist Подменю пользователя
сообщение 24.07.12, 21:22
Сообщение #14

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(rpodgornyy @ 24.07.12, 22:01) *
Свойство- то текстовый элемент:

В типовой свойство это "ПланВидовХарактеристикСсылка.СвойстваОбъектов", о том что в Вашей конфигурации это текст нигде не сказано.

Да и конструкция "СокрЛП (ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("000000001"))" это глупости.

Сообщение отредактировал logist - 24.07.12, 21:24


Signature
Личные бесплатные консультации не даю, для этого есть форум!

rpodgornyy Подменю пользователя
сообщение 24.07.12, 21:45
Сообщение #15

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 139
Из: Киев
Спасибо сказали: 14 раз
Рейтинг: 0

Это и есть типовая конфигурация УТ для Украины.


А почему же конструкция - глупости? Идёт выбор элемента по коду, но ведь сам элемент ("Свойство") - это же текстовое значение 64000000.gif

pablo Подменю пользователя
сообщение 25.07.12, 8:38
Сообщение #16

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Цитата
А почему же конструкция - глупости? Идёт выбор элемента по коду, но ведь сам элемент ("Свойство") - это же текстовое значение

Потому как глупо сравнивать заборы по тому, что на них написано, а не по уникальному идентификатору забора mamba.gif
То есть лишняя конвертация данных может только усугубить ошибки

Сообщение отредактировал pablo - 25.07.12, 8:40


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 10.06.24, 5:45
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!