Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не получается добавить нужные колонки в номенклатуру
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Bulzavr
Что я делаю не так??? Всего-лишь хочу добавить в номенклатуру три колонки ЦЕНА РОЗН и ЦЕНА ЗАКУП и ОСТАТКИ с выбором склада..

ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Цена,
    ТоварыНаСкладахОстатки.ВНаличииОстаток,
    СпрНоменклатура.Ссылка КАК Ссылка,
    СпрНоменклатура.Код КАК Код,
    СпрНоменклатура.Наименование КАК Наименование,
    СпрНоменклатура.Артикул КАК Артикул,
    СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
    СпрНоменклатура.Родитель,
    ВЫБОР
        КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества
            ТОГДА 4 + ВЫБОР
                    КОГДА СпрНоменклатура.ПометкаУдаления
                        ТОГДА 1
                    ИНАЧЕ 0
                КОНЕЦ + ВЫБОР
                    КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                        ТОГДА 0
                    ИНАЧЕ 2
                КОНЕЦ
        ИНАЧЕ ВЫБОР
                КОГДА СпрНоменклатура.ПометкаУдаления
                    ТОГДА 1
                ИНАЧЕ 0
            КОНЕЦ
            + ВЫБОР
                        КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                            ТОГДА 0
                        ИНАЧЕ 2
                    КОНЕЦ

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


Выдаёт ошибку:
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(44, 2)}: Синтаксическая ошибка "ЦеныНоменклатурыСрезПоследних.ВидЦены.Наименование"
<<?>>ЦеныНоменклатурыСрезПоследних.ВидЦены.Наименование = ""Розничная""



PS: Вот моя типовая чистая:
ВЫБРАТЬ
    СпрНоменклатура.Ссылка КАК Ссылка,
    СпрНоменклатура.Код КАК Код,
    СпрНоменклатура.Наименование КАК Наименование,
    СпрНоменклатура.Артикул КАК Артикул,
    СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
    СпрНоменклатура.Родитель,
    ВЫБОР
        КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества
            ТОГДА 4 + ВЫБОР
                    КОГДА СпрНоменклатура.ПометкаУдаления
                        ТОГДА 1
                    ИНАЧЕ 0
                КОНЕЦ + ВЫБОР
                    КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                        ТОГДА 0
                    ИНАЧЕ 2
                КОНЕЦ
        ИНАЧЕ ВЫБОР
                КОГДА СпрНоменклатура.ПометкаУдаления
                    ТОГДА 1
                ИНАЧЕ 0
            КОНЕЦ
            + ВЫБОР
                        КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                            ТОГДА 0
                        ИНАЧЕ 2
                    КОНЕЦ

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


Помогите пожалуйста...
Flexy
ГДЕ
    НЕ СпрНоменклатура.ЭтоГруппа И
    ЦеныНоменклатурыСрезПоследних.ВидЦены.Наименование = ""Розничная""
Bulzavr
Благодарю! Получилось, но в номенклатуре теперь не отображается ни одного товара((( Отбор пуст..

Блин, пытаюсь сделать, как в этой статье:
необходимо зарегистрироваться для просмотра ссылки

Выдаёт ошибку:
Ошибка в запросе набора данных
по причине:
{(31, 26)}: Поле не найдено "ТоварыОрганизацийОстатки.Номенклатура"
ТоварыОрганизацийОстатки.<<?>>Номенклатура КАК Номенклатура,


Помогите пожалуйста сделать три колонки ЦЕНА РОЗН и ЦЕНА ЗАКУП и ОСТАТКИ с выбором склада..
Flexy
Bulzavr @ Сегодня, 12:28 необходимо зарегистрироваться для просмотра ссылки ,
ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
Bulzavr
Благодарю. Теперь в модуле ошибку пишет..

Вот сюда.. в конце вставил кусок кода

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    УстановитьУсловноеОформление();
    
    // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
    Если Параметры.Свойство("АвтоТест") Тогда
        Возврат;
    КонецЕсли;
    
    КодФормы = "Справочник_Номенклатура_ФормаСписка";
                      
    ПодборТоваровСервер.ПриСозданииНаСервере(ЭтаФорма);
    
    ДоступенВводБезКонтроля = Справочники.Номенклатура.ДоступенВводБезКонтроля();
    
    ОбщегоНазначенияУТ.НастроитьПодключаемоеОборудование(ЭтаФорма);
    
    // Обработчик подсистемы "Внешние обработки"
    ДополнительныеОтчетыИОбработки.ПриСозданииНаСервере(ЭтаФорма);
    
    ЕстьПравоРедактирования = ПравоДоступа("Редактирование", Метаданные.Справочники.Номенклатура);
    
    Элементы.КоманднаяПанельСписокСтандартныйПоискНоменклатураФормаИзменитьВыделенные.Видимость = ЕстьПравоРедактирования;
    Элементы.КоманднаяПанельСписокРасширенныйПоискНоменклатураФормаИзменитьВыделенные.Видимость = ЕстьПравоРедактирования;
    
    ЕстьПравоСоздания = ПравоДоступа("Добавление", Метаданные.Справочники.Номенклатура);
    
    Элементы.ИерархияНоменклатурыКонтекстноеМенюСоздатьГруппу.Видимость = ЕстьПравоСоздания;
    Элементы.ИерархияНоменклатурыКонтекстноеМенюИзменить.Видимость = ЕстьПравоСоздания;
    Элементы.ИерархияНоменклатурыКонтекстноеМенюСкопировать.Видимость = ЕстьПравоСоздания;
    Элементы.ИерархияНоменклатурыКонтекстноеМенюУстановитьПометкуУдаления.Видимость = ЕстьПравоСоздания;
    
    Если Не ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ШтрихкодыНоменклатуры) Тогда
        Элементы.КоманднаяПанельСписокРасширенныйПоискНоменклатураФормаПоискПоШтрихкоду.Видимость = Ложь;
        Элементы.КоманднаяПанельСписокСтандартныйПоискНоменклатураФормаПоискПоШтрихкоду.Видимость = Ложь;
    КонецЕсли;
    
    Если ЗначениеЗаполнено(Параметры.НоменклатураФильтраПоСвойствам) Тогда
        ПодборТоваровСервер.ОтфильтроватьПоАналогичнымСвойствам(ЭтаФорма, Параметры.НоменклатураФильтраПоСвойствам);
    КонецЕсли;
    
    // СтандартныеПодсистемы.Печать
    ПанельКомандПечати = ?(Элементы.СтраницыСписков.ТекущаяСтраница = Элементы.СтраницаРасширенныйПоискНоменклатура,
        Элементы.ПодменюПечатьСписокРасширенный,
        Элементы.ПодменюПечатьСписокСтандартный);
    УправлениеПечатью.ПриСозданииНаСервере(ЭтаФорма, ПанельКомандПечати);
    // Конец СтандартныеПодсистемы.Печать

    // ИнтеграцияС1СДокументооборотом
    ИнтеграцияС1СДокументооборот.ПриСозданииНаСервере(ЭтаФорма, ПанельКомандПечати);
    // Конец ИнтеграцияС1СДокументооборотом
    
    Если ПраваПользователяПовтИсп.ЭтоПартнер() Тогда
        Элементы.КоманднаяПанельСписокРасширенныйПоискНоменклатураФормаПоискПоШтрихкоду.Видимость = Ложь;
        Элементы.КоманднаяПанельСписокСтандартныйПоискНоменклатураФормаПоискПоШтрихкоду.Видимость = Ложь;
    КонецЕсли;
    
    Элементы.КоманднаяПанельСписокРасширенныйПоискНоменклатураФормаИзменитьВыделенные.Видимость = ЕстьПравоРедактирования;
    Элементы.СписокРасширенныйПоискНоменклатураКонтекстноеМенюИзменитьВыделенные.Видимость = ЕстьПравоРедактирования;
    Элементы.КоманднаяПанельСписокСтандартныйПоискНоменклатураФормаИзменитьВыделенные.Видимость = ЕстьПравоРедактирования;
    Элементы.СписокСтандартныйПоискНоменклатураКонтекстноеМенюИзменитьВыделенные.Видимость = ЕстьПравоРедактирования;
    Элементы.ИерархияНоменклатурыКонтекстноеМенюИзменитьВыделенные.Видимость = ЕстьПравоРедактирования;
    
    СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
    
КонецПроцедуры


&НаСервере
Процедура УстановитьОтборПоЦенаНаСервере()
ЗначениеОтбора = ?(ЗначениеЗаполнено(Цена1), Цена1, Неопределено);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, «Цена1», ЗначениеОтбора, ЗначениеЗаполнено(Цена1));
ЗначениеОтбора = ?(ЗначениеЗаполнено(Цена2), Цена2, Неопределено);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, «Цена2», ЗначениеОтбора, ЗначениеЗаполнено(Цена2));
КонецПроцедуры


{Справочник.Номенклатура.Форма.ФормаСписка.Форма(77,75)}: Ожидается выражение
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список,<<?>> «Цена1», ЗначениеОтбора, ЗначениеЗаполнено(Цена1)); (Проверка: Сервер)
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(79,75)}: Ожидается выражение
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список,<<?>> «Цена2», ЗначениеОтбора, ЗначениеЗаполнено(Цена2)); (Проверка: Сервер)
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(77,75)}: Ожидается выражение
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список,<<?>> «Цена1», ЗначениеОтбора, ЗначениеЗаполнено(Цена1)); (Проверка: Тонкий клиент)
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(79,75)}: Ожидается выражение
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список,<<?>> «Цена2», ЗначениеОтбора, ЗначениеЗаполнено(Цена2)); (Проверка: Тонкий клиент)
Petre
Bulzavr @ Сегодня, 15:43 необходимо зарегистрироваться для просмотра ссылки ,
Кавычки человеческие поставьте.
Bulzavr
Эммм где? Я совсем совсем новичок в языке 1с
Petre
Bulzavr @ Сегодня, 15:46 необходимо зарегистрироваться для просмотра ссылки ,
У вас "елочки":
Цитата
«Цена1»


А надо:
"Цена1"
Bulzavr
Поставил...

&НаСервере
Процедура УстановитьОтборПоЦенаНаСервере()
ЗначениеОтбора = ?(ЗначениеЗаполнено(Цена1), Цена1, Неопределено);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "Цена1", ЗначениеОтбора, ЗначениеЗаполнено(Цена1));
ЗначениеОтбора = ?(ЗначениеЗаполнено(Цена2), Цена2, Неопределено);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "Цена2", ЗначениеОтбора, ЗначениеЗаполнено(Цена2));
КонецПроцедуры


Теперь:

{Справочник.Номенклатура.Форма.ФормаСписка.Форма(76,38)}: Переменная не определена (Цена1)
ЗначениеОтбора = ?(ЗначениеЗаполнено(<<?>>Цена1), Цена1, Неопределено); (Проверка: Сервер)
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(76,46)}: Переменная не определена (Цена1)
ЗначениеОтбора = ?(ЗначениеЗаполнено(Цена1), <<?>>Цена1, Неопределено); (Проверка: Сервер)
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(77,119)}: Переменная не определена (Цена1)
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "Цена1", ЗначениеОтбора, ЗначениеЗаполнено(<<?>>Цена1)); (Проверка: Сервер)
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(77,68)}: Переменная не определена (Список)
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(<<?>>Список, "Цена1", ЗначениеОтбора, ЗначениеЗаполнено(Цена1)); (Проверка: Сервер)
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(79,68)}: Переменная не определена (Список)
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(<<?>>Список, "Цена2", ЗначениеОтбора, ЗначениеЗаполнено(Цена2)); (Проверка: Сервер)
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(78,38)}: Переменная не определена (Цена2)
ЗначениеОтбора = ?(ЗначениеЗаполнено(<<?>>Цена2), Цена2, Неопределено); (Проверка: Сервер)
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(78,46)}: Переменная не определена (Цена2)
ЗначениеОтбора = ?(ЗначениеЗаполнено(Цена2), <<?>>Цена2, Неопределено); (Проверка: Сервер)
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(79,119)}: Переменная не определена (Цена2)
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "Цена2", ЗначениеОтбора, ЗначениеЗаполнено(<<?>>Цена2)); (Проверка: Сервер)


Везде проставить у Цена1 и Цена2 ?
Petre
Цитата(Bulzavr @ 28.08.17, 15:50) необходимо зарегистрироваться для просмотра ссылки
Везде проставить у Цена1 и Цена2 ?

Нет, не везде. Сейчас у вас совсем другая ошибка: "переменная не определена". Сервер не знает, что такое "Цена1" и "Цена2".
Bulzavr
Черт... Чего делать-то?
logist
Такое подозрение, что этот код размещен не в форме.
Bulzavr
Помогите пожалуйста.. Понимаю, что та статья видимо заковеркана как-то.. Не могли бы вы устранить ошибки в коде этой статьи? Всего-то три колонки добавить нужно...

Дурдом... Вставил код

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


Вытащил на таблицу


Теперь не пойму, как разместить поля ввода (какой тип реквизита?):


Ну и далее вставляю
&НаСервере
Процедура УстановитьОтборПоЦенаНаСервере()
ЗначениеОтбора = ?(ЗначениеЗаполнено(Цена1), Цена1, Неопределено);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "Цена1", ЗначениеОтбора, ЗначениеЗаполнено(Цена1));
ЗначениеОтбора = ?(ЗначениеЗаполнено(Цена2), Цена2, Неопределено);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "Цена2", ЗначениеОтбора, ЗначениеЗаполнено(Цена2));
КонецПроцедуры


и облом((
logist
Цитата(Bulzavr @ 28.08.17, 16:11) необходимо зарегистрироваться для просмотра ссылки
Вытащил на таблицу

Вы сами на изображении можете что-то разобрать?

upd. ПОЛНОЕ замените на ЛЕВОЕ
Bulzavr
Пардон за маленькую картинку. обновил:



Заменил ПОЛНОЕ на ЛЕВОЕ в трех местах. Ничего не меняется(

{Справочник.Номенклатура.Форма.ФормаСписка.Форма(78,38)}: Переменная не определена (Цена2)
ЗначениеОтбора = ?(ЗначениеЗаполнено(<<?>>Цена2), Цена2, Неопределено); (Проверка: Сервер)
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(78,46)}: Переменная не определена (Цена2)
ЗначениеОтбора = ?(ЗначениеЗаполнено(Цена2), <<?>>Цена2, Неопределено); (Проверка: Сервер)
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(79,119)}: Переменная не определена (Цена2)
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "Цена2", ЗначениеОтбора, ЗначениеЗаполнено(<<?>>Цена2)); (Проверка: Сервер)


Ладно, забил на коверканье модуля и две цены.
Нашёл более простую статью.. Делаю ДВЕ колонки.

ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаРозн,
    ТоварыНаСкладахОстатки.ВНаличииОстаток КАК Остаток,
    СпрНоменклатура.Ссылка КАК Ссылка,
    СпрНоменклатура.Код КАК Код,
    СпрНоменклатура.Наименование КАК Наименование,
    СпрНоменклатура.Артикул КАК Артикул,
    СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
    СпрНоменклатура.Родитель,
    ВЫБОР
        КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества
            ТОГДА 4 + ВЫБОР
                    КОГДА СпрНоменклатура.ПометкаУдаления
                        ТОГДА 1
                    ИНАЧЕ 0
                КОНЕЦ + ВЫБОР
                    КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                        ТОГДА 0
                    ИНАЧЕ 2
                КОНЕЦ
        ИНАЧЕ ВЫБОР
                КОГДА СпрНоменклатура.ПометкаУдаления
                    ТОГДА 1
                ИНАЧЕ 0
            КОНЕЦ
            + ВЫБОР
                        КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                            ТОГДА 0
                        ИНАЧЕ 2
                    КОНЕЦ

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


Всё проглатывается, но в клиенте список номенклатуры пуст!! ПОМОГИИИТЕЕЕЕ
logist
Цитата(Bulzavr @ 28.08.17, 17:09) необходимо зарегистрироваться для просмотра ссылки
Заменил ПОЛНОЕ на ЛЕВОЕ в трех местах. Ничего не меняется(

Это было замечание к тексту запроса.

Вам необходимо в окне реквизитов добавить два реквизита с типом справочникссылка.видыцен (или как-то так) и назвать их Цена1 и Цена2, затем разместить их на форме.
Bulzavr
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(77,68)}: Переменная не определена (Список)
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(<<?>>Список, "Цена1", ЗначениеОтбора, ЗначениеЗаполнено(Цена1)); (Проверка: Сервер)
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(79,68)}: Переменная не определена (Список)
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(<<?>>Список, "Цена2", ЗначениеОтбора, ЗначениеЗаполнено(Цена2)); (Проверка: Сервер)
logist
На скрине не вижно как называется реквизит со списком. Рискну предположить - СписокРасширенный
Bulzavr


Может у меня типы цен не заданы? Не пойму, где их найти


 ! 

необходимо зарегистрироваться для просмотра ссылки: 3
 
logist
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(СписокНоменклатуры, "Цена1", ЗначениеОтбора, ЗначениеЗаполнено(Цена1));
Bulzavr
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(9,68)}: Переменная не определена (СписокНоменклатуры)
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(<<?>>СписокНоменклатуры, "Цена1", ЗначениеОтбора, ЗначениеЗаполнено(Цена1)); (Проверка: Сервер)
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(11,68)}: Переменная не определена (СписокНоменклатуры)
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(<<?>>СписокНоменклатуры, "Цена2", ЗначениеОтбора, ЗначениеЗаполнено(Цена2)); (Проверка: Сервер)


Хммм.. сделал "СписокНоменклатура" и всё проглотилось... Сейчас буду тестировать)))

Хныыыыыы

logist
Цитата(Bulzavr @ 29.08.17, 9:48) необходимо зарегистрироваться для просмотра ссылки
Хныыыыыы

В полях Цена1 и Цена2 в событии ПриИзменении установить вызов процедуры которая устанавливает параметры списка, и ПриСоздании формы тоже
Bulzavr
Цитата(logist @ 29.08.17, 11:45) необходимо зарегистрироваться для просмотра ссылки
в событии ПриИзменении установить вызов процедуры

Простите, кого позвать? )))
logist
Цитата(Bulzavr @ 29.08.17, 11:49) необходимо зарегистрироваться для просмотра ссылки
Простите, кого позвать? )))

Программиста позовите wink.gif
Bulzavr
Франчайзи идут мимо! Мне уже 2 м..дака запросили 2 часа (4тыс) за то, чтобы в конфе одну галочку убрать, а другую поставить...
Я пытаюсь всего-лишь пару колонок добавить и всё. Неужели так сложно дать рабочий код?
logist
Цитата(Bulzavr @ 29.08.17, 12:10) необходимо зарегистрироваться для просмотра ссылки
Франчайзи идут мимо!

Я не предлагал свои услуги, я всего лишь ответил на ваш вопрос.

Цитата(Bulzavr @ 29.08.17, 12:10) необходимо зарегистрироваться для просмотра ссылки
Неужели так сложно дать рабочий код?

Вскопайте мне огород, это же не сложно, вообще знаний никаких не надо.
Bulzavr
Ну вообще-то форум на то и форум, чтобы человек задавал вопрос, ему на него отвечали (решением в данном случае), а потом всё это будет индексироваться поисковиками, что благополучно для форума. Поэтому извольте пожалуйста дельный ответ дать - в данном случае написать сразу верный синтаксис моей цели (устранить ошибку в коде, если хотите). Без обид, но это действительно обретает данный смысл.

Речь ведь идёт об элементарщине для вашего уровня знаний. Так чего вам стоит один раз лопатой капнуть?
logist
Цитата(Bulzavr @ 29.08.17, 12:15) необходимо зарегистрироваться для просмотра ссылки
чтобы человек задавал вопрос, ему на него отвечали

Вы путаете дать ответ на вопрос и сделать всю работу за того парня.

Цитата(Bulzavr @ 29.08.17, 12:15) необходимо зарегистрироваться для просмотра ссылки
Поэтому извольте пожалуйста

57000000.gif

Цитата(Bulzavr @ 29.08.17, 12:15) необходимо зарегистрироваться для просмотра ссылки
Так чего вам стоит один раз лопатой капнуть?

Уже копнул несколько раз, а вы мне предлагаете копать весь огород.
Vofka
Цитата(Bulzavr @ 29.08.17, 12:10) необходимо зарегистрироваться для просмотра ссылки
Мне уже 2 м..дака запросили 2 часа (4тыс)

4 тысячи за 2 часа?


Bulzavr, если вернуться в конструктивное русло, то вот вам ответили:
Цитата(logist @ 29.08.17, 11:45) необходимо зарегистрироваться для просмотра ссылки
В полях Цена1 и Цена2 в событии ПриИзменении установить вызов процедуры которая устанавливает параметры списка, и ПриСоздании формы тоже

Если вы не понимаете о чем тут написано, то это печаль, т.к. по другому это описать нельзя...
sava1
Цитата(Vofka @ 29.08.17, 14:09) необходимо зарегистрироваться для просмотра ссылки
Если вы не понимаете о чем тут написано,
, то ,может, франчи были правы насчет 4 тысч ?
Bulzavr
Vofka @ Сегодня, 14:09 необходимо зарегистрироваться для просмотра ссылки ,

А не вариант готовый кусок кода мне дать и просто сказать, куда его положить? ))
logist
Цитата(Bulzavr @ 29.08.17, 15:01) необходимо зарегистрироваться для просмотра ссылки
А не вариант готовый кусок кода мне дать

Не вариант, потому что готовый кусок, лежащий не важно где, работать не будет, нужно сделать то что написано в сообщении необходимо зарегистрироваться для просмотра ссылки

Цитата(Vofka @ 29.08.17, 14:09) необходимо зарегистрироваться для просмотра ссылки
4 тысячи за 2 часа?

Вова, это Раша, и вероятно МСК
Bulzavr
Цитата(logist @ 29.08.17, 11:45) необходимо зарегистрироваться для просмотра ссылки
В полях Цена1 и Цена2 в событии ПриИзменении установить вызов процедуры которая устанавливает параметры списка, и ПриСоздании формы тоже

Эммм.. где эту процедуру-то взять? ))
logist
Цитата(Bulzavr @ 29.08.17, 15:51) необходимо зарегистрироваться для просмотра ссылки
где эту процедуру-то взять? ))

Создать. Нажатием на лупу. И в созданной процедуре вызвать вашу процедуру УстановитьОтборПоЦенаНаСервере()
Bulzavr
Он спрашивает где создать? На клиенте? На сервере? Или создать на клиенте и вызвать на сервере (как-то так вроде)
logist
На клиенте
Bulzavr
Мля, не понимаю как так???!!! Сделал всё В ТОЧНОСТИ как на видео!!!! КАЖДЫЙ щелчок мышью повторял:
необходимо зарегистрироваться для просмотра ссылки

Итог - колонка есть, а цифр никаких в ней нет.

PS: Перед началом естественно вернул конфу в девственное состояние))

Оп это я олень простите! Первоначальные остатки неверно задал
Bulzavr
Правильно-ли записано?
ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0)


Если поставить пробел между ЕСТЬ и NULL? выдаёт синтакс. ошибку.

Проблема - Если товара нет в наличии, то в колонке пусто, а должен стоять "0"


Вот код.. Мож в нем строка эта неверна?
ВЫБРАТЬ
    СпрНоменклатура.Ссылка КАК Ссылка,
    СпрНоменклатура.Код КАК Код,
    СпрНоменклатура.Наименование КАК Наименование,
    СпрНоменклатура.Артикул КАК Артикул,
    СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
    СпрНоменклатура.Родитель,
    ВЫБОР
        КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества
            ТОГДА 4 + ВЫБОР
                    КОГДА СпрНоменклатура.ПометкаУдаления
                        ТОГДА 1
                    ИНАЧЕ 0
                КОНЕЦ + ВЫБОР
                    КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                        ТОГДА 0
                    ИНАЧЕ 2
                КОНЕЦ
        ИНАЧЕ ВЫБОР
                КОГДА СпрНоменклатура.ПометкаУдаления
                    ТОГДА 1
                ИНАЧЕ 0
            КОНЕЦ + ВЫБОР
                КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                    ТОГДА 0
                ИНАЧЕ 2
            КОНЕЦ
    КОНЕЦ КАК ИндексКартинки,
    ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК Остатки
ИЗ
    Справочник.Номенклатура КАК СпрНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
        ПО (ТоварыНаСкладахОстатки.Номенклатура = СпрНоменклатура.Ссылка)


Может потому, что ТИП поля стоит "Число" (которое не может быть нулём)? Не пойму, как изменить тип на "Строка".. Нету такого в свойствах поля

Помогите пожалуйста.. Уперся вот во что:

1. Нужно, чтобы в колонках ЦЕНА и ОСТАТКИ отображались нули, если цены или остатки не заполнены или имеют значение 0.
2. Сейчас при открытии номенклатуры отображаются только те товар, у которых установлена цена или остаток. В чём может быть проблема?
Bulzavr
Ну не бросайте меня... Я ведь уже у цели
sava1
case when IsNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0)=0 THEN 0 ELSE  ТоварыНаСкладахОстатки.ВНаличииОстаток END КАК Остатки
Bulzavr
Цитата(sava1 @ 30.08.17, 15:49) необходимо зарегистрироваться для просмотра ссылки
case when IsNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0)=0 THEN 0 ELSE ТоварыНаСкладахОстатки.ВНаличииОстаток END КАК Остатки


не сработало. Вставил вместо ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК Остатки

Не вижу в этой строке условия что-то типа "ЕСЛИ ОСТАТОК ПУСТОЙ" (могут быть товары не просто с нулевым остатком, а вообще с незаполненным и тогда должно показать 0)

Иными словами какое значение имеет регистр накопления остатков в случае отсутствия какого-либо значения вообще?

Хах жооооость.. В формате хоть и нет такого пункта, но его можно вручную ввести. Сделал "ЧН=0". Теперь всё как надо))

Горе с ценой теперь((( Ну вообще никак не получается. Прикол в том, что выводились раньше хоть те товары, у которых стояла цена, а теперь вообще никакие не выводятся. Это после того случилось, как я удалил объект вид цены Розничная (нужно было). Но сразу же создал такой же вид с тем же именем.. Что, теперь не может по названию найти?:
ЦеныНоменклатурыСрезПоследних.ВидЦены.Наименование = "Розничная"

Как найти вид цены по какому-нибудь идентификатору? Не по имени?

Сделал так:

ВЫБРАТЬ ПЕРВЫЕ 1
    СпрВидЦен.Ссылка КАК Розница
ПОМЕСТИТЬ ВтРозница
ИЗ
    Справочник.ВидыЦен КАК СпрВидЦен
ГДЕ
    СпрВидЦен.Наименование = "Розничная"
;

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


Номенклатура появляется вся, колонка "остаток" в норме, но в колонке "цена" ничего нет(((

Помогите умоляю!!
andr_andrey
Bulzavr @ Сегодня, 18:15 необходимо зарегистрироваться для просмотра ссылки ,
Цена выбирается на текущий момент из регистра сведений "ЦеныНоменклатуры", где ВидЦены = какой-то первой цене из справочника "ВидыЦен" с наименованием "Розничная"?

Если цена пуста, значит нет такого соответствия по указанным условиям, проверьте данные в этом регистре и справочнике, и убедитесь, что Номенклатуры из результата им соответствуют.
Bulzavr
Спасибо большое! Почти получилось.. У товаров с нулевым остатком не отображается цена. Как сделать, чтобы все цены отображались?

и такой вопрос.. Если нужно будет отображать другой вид цен, как его задать?

ВЫБРАТЬ
    СпрНоменклатура.Ссылка КАК Ссылка,
    СпрНоменклатура.Код КАК Код,
    СпрНоменклатура.Наименование КАК Наименование,
    СпрНоменклатура.Артикул КАК Артикул,
    СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
    СпрНоменклатура.Родитель,
    ВЫБОР
        КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества
            ТОГДА 4 + ВЫБОР
                    КОГДА СпрНоменклатура.ПометкаУдаления
                        ТОГДА 1
                    ИНАЧЕ 0
                КОНЕЦ + ВЫБОР
                    КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                        ТОГДА 0
                    ИНАЧЕ 2
                КОНЕЦ
        ИНАЧЕ ВЫБОР
                КОГДА СпрНоменклатура.ПометкаУдаления
                    ТОГДА 1
                ИНАЧЕ 0
            КОНЕЦ + ВЫБОР
                КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                    ТОГДА 0
                ИНАЧЕ 2
            КОНЕЦ
    КОНЕЦ КАК ИндексКартинки,
    ТоварыНаСкладахОстатки.ВНаличииОстаток КАК Остаток,
    ЦеныНоменклатуры.Цена
ИЗ
    Справочник.Номенклатура КАК СпрНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
        ПО (ТоварыНаСкладахОстатки.Номенклатура = СпрНоменклатура.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
        ПО (ЦеныНоменклатуры.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура)
ГДЕ
    НЕ СпрНоменклатура.ЭтоГруппа
{ГДЕ
    (СпрНоменклатура.Ссылка В
            (ВЫБРАТЬ
                Сегменты.Номенклатура
            ИЗ
                РегистрСведений.НоменклатураСегмента КАК Сегменты
            ГДЕ
                Сегменты.Сегмент = &СегментНоменклатуры))}
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.