Версия для печати темы (https://pro1c.org.ua/index.php?s=7020175c8966fff0b26a39f8163c5513&showtopic=43426)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Как добавить колонку "Штрих код" в справочник Номенклатура?

Автор: KriAn 18.01.18, 0:22

1С:Підприємство 8.3 (8.3.10.2699)

Управление торговлей для Украины, редакция 3.0
Разработка конфигурации: "ABBYY Ukraine", 2005-2014 (3.0.8.1) (http://v8.1c.ru/regional/RegionalSolutions_UA_UT.htm)
Copyright © ООО "1C", 2005-2014. Все права защищены
(http://www.1c.ru)

Доброго времени суток, решил для удобства (чтобы удобно видеть товары без штрих кода) добавить в справочник Номенклатура колонку Штрих код. Изменил запрос:

ВЫБРАТЬ 
    СпрНоменклатура.Ссылка КАК Ссылка,
    СпрНоменклатура.Код КАК Код,
    СпрНоменклатура.Наименование КАК Наименование,
    СпрНоменклатура.Артикул КАК Артикул,
    СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
    ТоварыНаСкладахОстатки.ВНаличииОстаток КАК Остаток,
    ШтрихкодыНоменклатуры.Штрихкод
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
        ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
            ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
            ПО ШтрихкодыНоменклатуры.Номенклатура = СпрНоменклатура.Ссылка
        ПО ТоварыНаСкладахОстатки.Номенклатура = СпрНоменклатура.Ссылка
ГДЕ
    НЕ СпрНоменклатура.ЭтоГруппа
{ГДЕ
    (СпрНоменклатура.Ссылка В
            (ВЫБРАТЬ
                Сегменты.Номенклатура
            ИЗ
                РегистрСведений.НоменклатураСегмента КАК Сегменты
            ГДЕ
                Сегменты.Сегмент = &СегментНоменклатуры))}



Работает только если товар имеет один штрих код, если больше - конечно выдает ошибку.

Как можно выйти из ситуации, чтобы показывало первый штрих код или последний или просто писало слово "Есть"???

 ! 

http://pro1c.org.ua/index.php?act=announce&id=2: 9
 


 i 

Без надобности не надо раскрашивать текст цветами
 

Автор: Vofka 18.01.18, 9:12

Как-то так:

ВЫБРАТЬ 
    СпрНоменклатура.Ссылка КАК Ссылка,
    СпрНоменклатура.Код КАК Код,
    СпрНоменклатура.Наименование КАК Наименование,
    СпрНоменклатура.Артикул КАК Артикул,
    СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
    МИНИМУМ(ТоварыНаСкладахОстатки.ВНаличииОстаток) КАК Остаток,
    МИНИМУМ(ШтрихкодыНоменклатуры.Штрихкод) КАК Штрихкод
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
        ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
            ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
            ПО ШтрихкодыНоменклатуры.Номенклатура = СпрНоменклатура.Ссылка
        ПО ТоварыНаСкладахОстатки.Номенклатура = СпрНоменклатура.Ссылка
ГДЕ
    НЕ СпрНоменклатура.ЭтоГруппа
СГРУППИРОВАТЬ ПО
    СпрНоменклатура.Ссылка,
    СпрНоменклатура.Код,
    СпрНоменклатура.Наименование,
    СпрНоменклатура.Артикул,
    СпрНоменклатура.ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения,
    СпрНоменклатура.СтавкаНДС
{ГДЕ
    (СпрНоменклатура.Ссылка В
            (ВЫБРАТЬ
                Сегменты.Номенклатура
            ИЗ
                РегистрСведений.НоменклатураСегмента КАК Сегменты
            ГДЕ
                Сегменты.Сегмент = &СегментНоменклатуры))}


На работоспособность не проверял.

Автор: KriAn 18.01.18, 15:16

Спасибо, работает, только отключилась сортировка по столбцам.... Это можно как-то исправить???

Автор: Batchir 18.01.18, 15:55

Цитата(KriAn @ 18.01.18, 15:16) *
Спасибо, работает, только отключилась сортировка по столбцам.... Это можно как-то исправить???

Это нормальное поведение для динамического списка. Не работают сортировки когда используется СГРУППИРОВАТЬ ПО.
Попробуйте вынести во вложенный запрос и уже выбирать без СГРУППИРОВАТЬ ПО

Автор: KriAn 19.01.18, 0:41


 ! 

http://pro1c.org.ua/index.php?act=announce&id=2: 9
 


Цитата(Batchir @ 18.01.18, 16:55) *
Попробуйте вынести во вложенный запрос и уже выбирать без СГРУППИРОВАТЬ ПО


Вот что получилось:

ВЫБРАТЬ
    Ссылка КАК Ссылка,
    Код КАК Код,
    Наименование КАК Наименование,
    Артикул КАК Артикул,
    ВидНоменклатуры КАК ВидНоменклатуры,
    ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    СтавкаНДС КАК СтавкаНДС,
    Остаток КАК Остаток,
    Штрихкод КАК Штрихкод

ИЗ

(ВЫБРАТЬ
    СпрНоменклатура.Ссылка КАК Ссылка,
    СпрНоменклатура.Код КАК Код,
    СпрНоменклатура.Наименование КАК Наименование,
    СпрНоменклатура.Артикул КАК Артикул,
    СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
    МИНИМУМ(ТоварыНаСкладахОстатки.ВНаличииОстаток) КАК Остаток,
    МИНИМУМ(ШтрихкодыНоменклатуры.Штрихкод) КАК Штрихкод
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
        ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
            ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
            ПО ШтрихкодыНоменклатуры.Номенклатура = СпрНоменклатура.Ссылка
        ПО ТоварыНаСкладахОстатки.Номенклатура = СпрНоменклатура.Ссылка
ГДЕ
    НЕ СпрНоменклатура.ЭтоГруппа
СГРУППИРОВАТЬ ПО
    СпрНоменклатура.Ссылка,
    СпрНоменклатура.Код,
    СпрНоменклатура.Наименование,
    СпрНоменклатура.Артикул,
    СпрНоменклатура.ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения,
    СпрНоменклатура.СтавкаНДС


{ГДЕ
    (СпрНоменклатура.Ссылка В
            (ВЫБРАТЬ
                Сегменты.Номенклатура
            ИЗ
                РегистрСведений.НоменклатураСегмента КАК Сегменты
            ГДЕ
                Сегменты.Сегмент = &СегментНоменклатуры))}) КАК Товар


В консоли запросов работает, а вот в программе выдает ошибку:

{ОбщийМодуль.ОбщегоНазначения.Модуль(68)}: Значення не є значенням об`єктного типу (Метаданные)
Запрос = Новый Запрос(

Автор: logist 19.01.18, 0:50

Цитата(KriAn @ 19.01.18, 0:41) *
а вот в программе выдает ошибку:

Приведите весь листинг кода запроса начиная со строки 68

Автор: KriAn 19.01.18, 10:46

Цитата(logist @ 19.01.18, 1:50) *
Приведите весь листинг кода запроса начиная со строки 68


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

    Результат = Новый Структура;
    Для Каждого КлючИЗначение Из СтруктураРеквизитов Цикл
        Результат.Вставить(КлючИЗначение.Ключ);
    КонецЦикла;
    ЗаполнитьЗначенияСвойств(Результат, Выборка);

    Возврат Результат;
КонецФункции

Автор: Vofka 19.01.18, 10:53

KriAn @ Сегодня, 10:46 * ,
а как связан вопрос из 1 сообщения и из вашего предыдущего? faceoff.gif
Давайте не забывать про 6 пункт правил. Эту тему я закрою, т.к. по изначальному вопросу, по-моему, все должно быть ясно.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua