Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы с запросом
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Powerman
В общем ситуация такая …

Была поставлена задача сделать в подвале формы документа группировку по единицам номенклатуры, т.е. в табличной части документа набивается часть номенклатуры с единицей килограммы (5 кг в одной строке, 15 кг в другой, 3 кг в третьей), часть номенклатуры в тоннах (7 т в одной строке, 10 т в другой, 3 т в третьей), и т.д.

В подвале формы документа должно отображаться: кг – 23, т – 20, …

Я сделал запрос с последующей обработкой и разместил в процедуре ОбновитьПодвал() модуля формы.

Вопрос заключается в том что группировка (запрос) в файловой версии работает отлично, а файл-серверной (MySQL ) часть группируется номенклатуры а часть нет (в приведенням выше примере получается примерно такое… кг – 15, кг – 8, т – 10, т – 10, …)

Возможно, я что то в коде не правильно написал или связанно с проблеммой описанной в статье «Особенности использования предложения СГРУППИРОВАТЬ ПО» на этом форуме.

1С: Предприятие 8.2, конфа "Управление торговым предприятием для Украины", редакция 1.2.

Код ниже…

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




Вывод по сумне оказался не нужен, я его позже уберу…




awp
1. ПРОФИЛАКТИКА : Проверьте справочник "ЕдиницыИзмерения". Предполагаю что у Вас куча записей с кг. и т.
2. РЕШЕНИЕ : Вместо "
РеализацияТоваровУслугТовары.ЕдиницаИзмерения
" писать "
РеализацияТоваровУслугТовары.ЕдиницаИзмерения.Наименование
"
Программист существо ленивое - я бы использовал метод "Свернуть" - меньше кода smile.gif

logist
Цитата(awp @ 28.06.12, 15:31) необходимо зарегистрироваться для просмотра ссылки
" писать "

РеализацияТоваровУслугТовары.ЕдиницаИзмерения.Наименование

"

а лучше
РеализацияТоваровУслугТовары.ЕдиницаИзмерения.ЕдиницаПоКлассификатору
Powerman
Спасибо awp и logist !

Заработало всё как положено с РеализацияТоваровУслугТовары.ЕдиницаИзмерения.ЕдиницаПоКлассификатору и также всё работает если прописывать РеализацияТоваровУслугТовары.ЕдиницаИзмерения.Наименование.

Попробовал по совету awp реализовать всё это мероприятие с помощью метода "Свернуть", (так даже лучше, так как не нужно сохранять документ для получения актуальных данных при добавлении номенклатуры) вроде работает, но точно также как описано в моём первом сообщении. Куда прописать РеализацияТоваровУслугТовары.ЕдиницаИзмерения.ЕдиницаПоКлассификатору не пойму, подскажите пожалуйста.



Код ниже…

ТаблицаТоваров =Товары.Выгрузить(,"ЕдиницаИзмерения,Количество");

ТаблицаТоваров.Свернуть("ЕдиницаИзмерения","Количество");

Для Каждого Строка Из ТаблицаТоваров Цикл

      ИтогЕд = ИтогЕд + " Ед. - " + Строка(Строка.ЕдиницаИзмерения)+ ",  Кол. - " +Строка(Строка.Количество) + "     ";

КонецЦикла;

Vofka
Powerman, на будущее: не дублируйте посты!
Powerman
Цитата(Vofka @ 02.07.12, 9:29) необходимо зарегистрироваться для просмотра ссылки
Powerman, на будущее: не дублируйте посты!

У меня по какой то причине не отображался предыдущий пост, если смотрел не авторизованным. Редактировать посты на этом форуме, к сожалению не разрешено. Пришлось продублировать пост.
Powerman
Очень жду подсказку. upset.gif

Спасибо.

Powerman
Цитата(Powerman @ 02.07.12, 11:46) необходимо зарегистрироваться для просмотра ссылки
Очень жду подсказку. upset.gif

Спасибо.


help.gif
Vofka
Сформулируйте ещё раз вопрос, только внятно.
Powerman
Цитата(Vofka @ 03.07.12, 10:09) необходимо зарегистрироваться для просмотра ссылки
Сформулируйте ещё раз вопрос, только внятно.

Попробовал реализовать в подвале формы документа группировку по единицам номенклатуры с помощью метода "Свернуть", вроде работает, но точно также как описано в моём первом сообщении, т.е. ошибки группировки возможно из-за того что в справочнике "ЕдиницыИзмерения" куча записей с кг. и т.

Для того что бы обойти эту проблему необходимо сворачивать по ЕдиницаИзмерения.ЕдиницаПоКлассификатору. Куда добавить ЕдиницаПоКлассификатору не пойму.

Мой (возможно не правильный) код ниже.

Vofka
Цитата(Powerman @ 03.07.12, 12:47) необходимо зарегистрироваться для просмотра ссылки
необходимо сворачивать по ЕдиницаИзмерения.ЕдиницаПоКлассификатору

Значит добавить в ТЗ колонку ЕдиницаПоКлассификатору и сворачивать по нему.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.