Имя: Пароль:
1C
1С v8
левое соединение в произвольном запросе динамического списка
,
0 altaykniga
 
05.12.16
16:02
Доброго времени суток, уважаемые. УНФ 1.6.7. В форму списка справочника Номенклатура необходимо добавить колонку "файл" с последним измененным файлом, прикрепленным к номенклатуре.
изменил текст запроса дин.списка, в реквизите формы СписокЗапасы реквизит "ФайлСсылка" появляется, но в режиме предприятия этой колонки на форме нет +ее нет в "Еще - изменить форму".

Что делаю не так? Подскажите, пожалуйста
1 Cyberhawk
 
05.12.16
16:04
Варианта два: либо нужно было менять не форму (т.к. конечный запрос подменяется программно), либо сбросить настройки формы
2 Cyberhawk
 
05.12.16
16:05
А, раз "ее нет в "Еще - изменить форму"", то вариант 1
3 altaykniga
 
05.12.16
16:42
(0) поправка: "В форму списка справочника Номенклатура необходимо добавить колонку "файл" с последним измененным файлом, прикрепленным к СПЕЦИФИКАЦИИ номенклатуры.
Ниже приведен текст запроса, который задается программно. В результате на форме появляется колонка "ФайлСсылка", но...
колонка "файлСсылка" заполняется только одним значением (последним измененным файлом). Т.е. строк номенклатуры много, а файлСсылка заполнен только у одной строки. Что не так написано в тексте запроса:


ВЫБРАТЬ
    СправочникНоменклатура.Ссылка КАК Ссылка,
    СправочникНоменклатура.Ссылка КАК Номенклатура,
    СправочникНоменклатура.ПометкаУдаления,
    СправочникНоменклатура.Родитель,
    СправочникНоменклатура.ЭтоГруппа,
    СправочникНоменклатура.Код,
    СправочникНоменклатура.Наименование,
    СправочникНоменклатура.Артикул,
    СправочникНоменклатура.ДатаИзменения,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения, СправочникНоменклатура.ЕдиницаИзмерения) КАК ЕдиницаИзмерения,
    СправочникНоменклатура.МетодОценки,
    ВЫРАЗИТЬ(СправочникНоменклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК НаименованиеПолное,
    СправочникНоменклатура.НаправлениеДеятельности,
    СправочникНоменклатура.КатегорияНоменклатуры,
    СправочникНоменклатура.Поставщик,
    СправочникНоменклатура.Склад,
    СправочникНоменклатура.Спецификация,
    СправочникНоменклатура.СпособПополнения,
    СправочникНоменклатура.СрокПополнения,
    СправочникНоменклатура.СтавкаНДС,
    СправочникНоменклатура.СчетУчетаЗапасов,
    СправочникНоменклатура.СчетУчетаЗатрат,
    СправочникНоменклатура.ТипНоменклатуры,
    СправочникНоменклатура.Ячейка,
    СправочникНоменклатура.ЦеноваяГруппа,
    СправочникНоменклатура.ИспользоватьХарактеристики,
    СправочникНоменклатура.ИспользоватьПартии КАК ИспользуетсяРезервирование,
    СправочникНоменклатура.ИспользоватьПартии КАК ИспользоватьПартии,
    СправочникНоменклатура.Недействителен,
    СправочникНоменклатура.СрокИсполненияЗаказа,
    СправочникНоменклатура.НормаВремени,
    СправочникНоменклатура.ФиксированнаяСтоимость,
    СправочникНоменклатура.СтранаПроисхождения,
    СправочникНоменклатура.ВидАлкогольнойПродукции,
    СправочникНоменклатура.ИмпортнаяАлкогольнаяПродукция,
    СправочникНоменклатура.ПроизводительИмпортерАлкогольнойПродукции,
    СправочникНоменклатура.ОбъемДАЛ,
    СправочникНоменклатура.ИспользоватьСерийныеНомера,
    СправочникНоменклатура.ГарантийныйСрок,
    СправочникНоменклатура.ВыписыватьГарантийныйТалон,
    ПОДСТРОКА(СправочникНоменклатура.Комментарий, 1, 1000) КАК Комментарий,
    ВЫБОР
        КОГДА СправочникНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Запас)
            ТОГДА 0
        ИНАЧЕ 2
    КОНЕЦ + ВЫБОР
        КОГДА СправочникНоменклатура.ИспользоватьХарактеристики
            ТОГДА 1
        ИНАЧЕ 0
    КОНЕЦ + ВЫБОР
        КОГДА СправочникНоменклатура.ПометкаУдаления
            ТОГДА 4
        ИНАЧЕ 0
    КОНЕЦ КАК ВариантКартинки,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
    ВЫБОР
        КОГДА ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
            ТОГДА ЕСТЬNULL(ОстаткиТоваров.Количество, 0) / ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения.Коэффициент
        ИНАЧЕ ЕСТЬNULL(ОстаткиТоваров.Количество, 0)
    КОНЕЦ КАК КоличествоОстаток,
    файлы.Ссылка КАК ФайлСсылка
ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОстаткиТоваров КАК ОстаткиТоваров
        ПО (&ПоказыватьКоличество)
            И (ОстаткиТоваров.Номенклатура = СправочникНоменклатура.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                &ПериодЦен,
                Актуальность
                    И ВидЦен = &ВидЦен) КАК ЦеныНоменклатурыСрезПоследних
        ПО (&ПоказыватьЦены)
            И (ЦеныНоменклатурыСрезПоследних.Номенклатура = СправочникНоменклатура.Ссылка)
            И (ЦеныНоменклатурыСрезПоследних.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка))
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1
            СпецификацииПрисоединенныеФайлы.Ссылка КАК Ссылка,
            СпецификацииПрисоединенныеФайлы.ВладелецФайла КАК ВладелецФайла
        ИЗ
            Справочник.СпецификацииПрисоединенныеФайлы КАК СпецификацииПрисоединенныеФайлы
        
        УПОРЯДОЧИТЬ ПО
            СпецификацииПрисоединенныеФайлы.ДатаМодификацииУниверсальная УБЫВ) КАК файлы
        ПО СправочникНоменклатура.Спецификация = файлы.ВладелецФайла
ГДЕ
    НЕ СправочникНоменклатура.ЭтоГруппа
4 1sanekmaloi1
 
05.12.16
16:58
то есть по вашему
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1
            СпецификацииПрисоединенныеФайлы.Ссылка КАК Ссылка,
            СпецификацииПрисоединенныеФайлы.ВладелецФайла КАК ВладелецФайла
        ИЗ
            Справочник.СпецификацииПрисоединенныеФайлы КАК СпецификацииПрисоединенныеФайлы
        
        УПОРЯДОЧИТЬ ПО
            СпецификацииПрисоединенныеФайлы.ДатаМодификацииУниверсальная УБЫВ)

делает срез по последним файлам для каждой спецификации?
ошибаетесь, тут выбирается 1 последний редактированый файл
5 aleks_default
 
05.12.16
17:00
Чтобы это работало нужно запрос к справочнику перенести в условия соединения, но тормозить будет шо писец. Лучше посмотри в сторону хранения даты последнего изменения файла где-нибудь в реквизитах(или доп. реквизитах) спецификации.
6 aleks_default
 
05.12.16
17:03
в доп. свойствах
7 altaykniga
 
05.12.16
17:10
(5,6) спасибо. А что мне это даст? Тогда уж ссылку на последний файл хранить в реквизите/доп.реквизите/доп.свойстве спецификации?
8 aleks_default
 
05.12.16
17:13
Если в типах характеристик доп. свойств этот справочник есть то почему бы и нет(дата-то там точно есть).
9 altaykniga
 
05.12.16
17:15
(8) а как я с помощью даты в доп.свойстве смогу реализовать свою задачу?
10 aleks_default
 
05.12.16
17:29
Если будешь соединять по дате и владельцу, то не надо упорядочивать и отбирать верхний. Тупо левое соединение будет.
Ну или, например, можно сделать даже проще. В самом дин. списке выводить только дату последнего изменения файла. А получать файл при нажатии пользователем на строку.
Ошибка? Это не ошибка, это системная функция.