Осторожно, 1С! 14-я серия

Продолжаем рассматривать особенности СКД: запрос в отчете и в консоли могут давать разные результаты. Неприятный момент.

К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь. Если Вы оплачивали курс, у Вас активирован токен доступа, Вы залогинены, но Вы видите эту запись — напишите нам на e-mail поддержки.

комментарий 21 на “Осторожно, 1С! 14-я серия”

  1. В 13-й серии Осторожно 1С говорилось об особенностях задания периода для виртуальных таблиц при формировании отчетов, а у меня возникла проблема при выводе остатков на одну дату, а цен на другую в форме списка справочника.  Если вообще не указываю период, информация выводится, как только я указываю для виртуальной таблицы цен дату документа, из которого ведется подбор, остатки тоже выводятся на эту дату, хотя для таблицы остатков период не указывается. Не помогает и указание «Неопределенно» в качестве периода для таблицы остатков.
    Как можно с этим бороться, и можно ли?

    • Интересная ситуация.
      Речь идет о произвольном запросе в дин. списке?
      Приведите текст запроса, будем разбираться..

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

        • Описанное Вами поведение не воспроизводится.
          Проверьте, что Вы используете последний релиз платформы.
          На почту отправил пример, где видно, что остатки берутся всегда на актуальную дату, не зависимо от даты получения среза последних записей.

          • Спасибо за пример, релиз у меня (8.2.13.199)

            • Попробуйте обновиться до актуальной версии.

              • Спасибо, попробую
                 

              • Вот, кажется, разобралась
                Проблема была в том, что я параметр назвала &Период
                Проделала следующие действия
                Из запроса я убрала период, а в установке параметров списка забыла закомментировать – отработало все ,как с периодом, когда этот параметр в установке назвала по другому –  получила ошибку, что такого параметра нет,  обратно вернула на старое название, которого тоже нет в запросе (проверила несколько раз, думала ,что ошибаюсь) – ошибки нет,  Потому и пришла мысль ,что связано это с названием параметра  &Период, когда я его обозвала по-другому – все заработало.

                • Спасибо за исследование, поведение воспроизводится.
                  Будем его анализировать, возможно это сюжет для “Осторожно, 1С”.

      • Да- – произвольный запрос в динамическом списке ФормаВыбора

      • а если вот так
         
        Справочник.Номенклатура КАК СправочникНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ТипЦены = &ТипЦены) КАК ЦеныНоменклатурыСрезПоследних
        ПО СправочникНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ТипЦены = ЗНАЧЕНИЕ(Справочник.ТипыЦен.Поставщика)) КАК ЦеныНоменклатурыСрезПоследних1
        ПО СправочникНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследних1.Номенклатура
        то остатки тоже получаются на &Период

        • Не вижу где здесь получаются остатки.

          • нет, запрос тот же – только в параметр виртуальной таблицы добавила период

          • когда в консоли выполняю тот же запрос – все остатки показываются а в списке нет

  2. еще, если выставить доступный = Недоступный в оформлении (на программном уровне или в конфигураторе), то оно не применяется – добавленное оформление всё-равно видно…. также если свойству Представление присвоить программно некий текст, то добавленное оформление нельзя будет смотреть – что там и как настроено, зато можно будет редактировать текст представления, он только один и отражается как добавленное оформление :)))

  3. есть еще один неприятный момент: у списка в обработке АктивизацияСтроки пишем Обновить(). Далее если по этому списку делать поиск через Найти – будет вечное зацикливание…

    • Про событие ПриАктивацииСтроки запишу отдельную серию.

      • Да, запишите, а то когда наткнулся долго разбирался :)