Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как добавить колонку "Штрих код" в справочник Номенклатура?
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
KriAn
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)

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

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



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

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

 ! 

необходимо зарегистрироваться для просмотра ссылки: 9
 


 i 

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

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


На работоспособность не проверял.
KriAn
Спасибо, работает, только отключилась сортировка по столбцам.... Это можно как-то исправить???
Batchir
Цитата(KriAn @ 18.01.18, 15:16) необходимо зарегистрироваться для просмотра ссылки
Спасибо, работает, только отключилась сортировка по столбцам.... Это можно как-то исправить???

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

 ! 

необходимо зарегистрироваться для просмотра ссылки: 9
 


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


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

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

ИЗ

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


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


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

{ОбщийМодуль.ОбщегоНазначения.Модуль(68)}: Значення не є значенням об`єктного типу (Метаданные)
Запрос = Новый Запрос(
logist
Цитата(KriAn @ 19.01.18, 0:41) необходимо зарегистрироваться для просмотра ссылки
а вот в программе выдает ошибку:

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


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

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

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