Разработка и оптимизация запросов в 1С:Предприятие 8.3. Модуль 2. Синтаксис текста запроса

На данной странице задавайте вопросы по материалам и практическим заданиям второго модуля курса «Разработка и оптимизация запросов в 1С:Предприятие 8.3».

Практические задания

К сожалению, у Вас недостаточно прав для дальнейшего просмотра.

Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.

Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.

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

Комментарии / обсуждение (1 016):

  1. baronoleg

    Ключевое слово СПЕЦСИМВОЛ в конструкторе запроса можно только вручную записать в произвольном условии?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  2. Рустам

    Добрый день!
    Задание №19.
    При выполнении запроса в окне сообщений выводится следующее сообщение: «Метод объекта не обнаружен (Количество)»

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

    • baronoleg

      Эта ошибка возможно возникает из-за того, что вы группируете не на закладке «Группировка» конструктора запроса, а на закладке «Итоги». У меня было также, не сразу понял)

      • Василий Ханевич


        (текст комментария доступен только участникам Мастер-группы)

        • baronoleg

          Получается так и есть, в модуле 3, когда начинается работа в запросе с итогами, выдаёт такую ошибку. Отладчиком найти не получается, не проваливается в Попытка ВыполнитьЗапросСервер(…)
          Возможно у вас есть нормальная версия консоли? Я скачивал на итс последнюю, версию?

          • Василий Ханевич


            (текст комментария доступен только участникам Мастер-группы)

            • baronoleg

              Благодарю, всё заработало. Тогда ещё один вопрос по консоли: в пустом окне «текст запроса» не запускается конструктор запроса, выдавая ошибку «ожидается выражение «ВЫБРАТЬ». Приходится каждый раз писать «выбрать 1». Заранее благодарю)

              • Василий Ханевич


                (текст комментария доступен только участникам Мастер-группы)

                • baronoleg

                  Благодарю, теперь всё заработало.
                  Что мне нравится в вашем курсе — оперативно отвечаете!

                  • Василий Ханевич


                    (текст комментария доступен только участникам Мастер-группы)

  3. Рустам

    Добрый день!
    В задании №17 наверняка надо добавить РАЗЛИЧНЫЕ, чтобы не было повторяющихся записей.

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  4. Рустам

    Добрый день!При нажатии галочки «Выполнять план выполнения запроса» выходит такое окно.Я зашел под администратором, у него полные права. В чем же проблема?

    %211.jpg

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  5. Рустам

    Добрый день!
    Вопрос по практическому заданию №9. Зачем ссылаться на ссылку. Нельзя ли сделать так:
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    РеализацияТоваров.Контрагент КАК Контрагент
    ИЗ
    Документ.РеализацияТоваров КАК РеализацияТоваров
    ГДЕ
    РеализацияТоваров.Товары.Номенклатура = &Номенклатура

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  6. Рустам

    Добрый день!
    Не согласен с решением Вами практического задания №8. Если ввести номер +7(927)756-а1-12, то
    Ваш запрос посчитает его корректным. Надо сделать так
    ПОДОБНО «+7([0-9][0-9][0-9])[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]»
    Вот теперь он не пропустит последний номер телефона, можете попробовать.

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  7. Eichen

    Василий, здравствуйте.

    Опять вопрос по консоли запросов.
    Я раздобыл ИТС-версию консоли, которая работает без сбоев, однако когда я пытаюсь поставить галочку на «Показывать план выполнения запроса», мне выдается сообщение про права доступа (Снимок 1).

    Подскажите, пожалуйста, что можно с этим сделать, чтобы работало как надо?

    %D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8C%D1%82%D0%B5%20%D0%BF%D1%80%D0%B0%D0%B2%D0%B0%20%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0%2001.jpg

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • Eichen

        Да, теперь всё работает.
        Спасибо большое.

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  8. Юлия Симонова

    Добрый день.Подскажите пожалуйста,почему в конструкторе запросов при открытии в конфигураторе нет кнопки запуска на выполнение запроса?

    %D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.JPG

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  9. Eichen

    Здравствуйте.
    Вы не могли бы прислать ссылку на консоль запросов?
    Я скачивал здесь: http://its.1c.ru/db/metod81#content:4500:1.
    Но что-то она «кривая» какая-то, не работает так, как у преподавателя в видео, в частности не запускается конструктор запроса при работе в толстом клиенте в режиме пользователя (снимок 1 и снимок 2).
    Или дело в версии платформы?
    У меня версия — 8.3.16.1063.

    %D0%9A%D0%BE%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D0%BE%D1%80%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0%2001.jpg%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D0%BE%D1%80%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0%2002.jpg

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  10. maxim.saharov

    Так как есть ограничение по ветке комментариев, в продолжение переписки ниже на этой странице, а именно на комментарий
    https://курсы-по-1с.рф/1c-v8/development-optimize-queries/startpage/module02/comment-page-5/#comment-847317
    у меня еще такой вопрос:
    Все теперь предельно ясно, спасибо!
    Еще осталось не понятно что такое в данном случии таблица T1 и зачем оно делает какое то левое соединение если все же берем из таблицы источника — Справочник.Номенклатура.

    И что означает —
    «» + Данные.Наименование + » (» + Данные.Артикул + «)» — а именно зачем тут — «» +

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • maxim.saharov

        А как Данные.Наименование могут быть не строковые или NULL ?

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

          • maxim.saharov

            Представление = «» + Данные.Артикул + » (» + Данные.Наименование + «)»;
            — если Данные.Артикул для групп = NULL, и вы говорите что все будет работать — то что получается что пустая строка + NULL = пустая строка?

            • Василий Ханевич


              (текст комментария доступен только участникам Мастер-группы)

  11. maxim.saharov

    Практическое задание №15 — «Пользователь устанавливает два параметра запроса – Дата начала и Дата окончания. Необходимо запросом получить список документов «Поступление товаров», попадающих в этот интервал.»
    — это вы не сделали) — а как же все таки сделать в запросе Дата начала и Дата окончания ?

    — уже нашел ответ по тексту «Небольшое уточнение, в 15 задании»

    Коллеги — давайте писать не произвольно название задач а так как они называются — то есть эта задача называется в «Query-1Сv8-theory» — «Практическое задание №15» и так и пишем )
    и тогда из 826 комментариев можно будет легко нажать Ctrl + F и найти ответ.

    Суппорту предлагаю это прописать как правило!

    Также есть пожелания — добавить на сайте кнопку ПОКАЗАТЬ ВСЕ Комментарии и
    тогда что бы найти ответ методом поиска из 826 комментариев не нужно будет перелистывать 5 и более страниц!

    Автору курса предлагаю на найденные баги, что бы не переснимать видео, просто добавлять текстовый документ в соответствующую папку задачи — с именем например комментарии к видео и писать что при снятии видео по ошибке не учли то-то и то и текст ниже что нужно сделать что бы оно работало как в задании — как пример здесь ниже ваш текст — нужно добавить в запрос:

    ГДЕ
    ПоступлениеТоваров.Дата МЕЖДУ &Дата1 И &Дата2

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  12. maxim.saharov

    стр — 51 — Текстовое представление ссылочного поля — если функция
    ПРЕДСТАВЛЕНИЕ(Номенклатура.Ссылка) — возвращает текстовое поле — то чего нельзя прибавить сразу текст какой то ?
    например
    ПРЕДСТАВЛЕНИЕ(Номенклатура.Ссылка) + «Вася»
    — пишет ошибку — скрин прикрепил
    или как к представлению ссылки присоединить в запросе текст какой то ?

    а если вывести сразу через разименование — типо
    Номенклатура.Наименование — то это намного тяжелей запрос получается ?

    и если если выводить как текст через Номенклатура.Наименование — то тогда и работает
    добавление текста — типо
    Номенклатура.Наименование + » Вася» КАК Наименование

    %D0%9F%D0%A0%D0%95%D0%94%D0%A1%D0%A2%D0%90%D0%92%D0%9B%D0%95%D0%9D%D0%98%D0%95.png

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • maxim.saharov

        а чего именно когда отвечает Василий Ханевич — то не приходит на почту уведомление что был сделан ответ на мой вопрос. Прошлый раз когда Вы отвечали тоже не было уведомления на почту

        • Кузьмин Сергей


          (текст комментария доступен только участникам Мастер-группы)

      • maxim.saharov

        а если вывести сразу через разименование – типо
        Номенклатура.Наименование – то это намного тяжелей запрос получается ?

        Тоесть есть есть например 100тыс товаров
        И в первом случии выводим просто
        Номенклатура.Ссылка
        Во втором
        Номенклатура.Наименование
        В третьем
        ПРЕДСТАВЛЕНИЕ(Номенклатура.Ссылка)
        То сколько примерно в доли секундах будет длится запрос и какой из них наименее легкий и почему?

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

          • maxim.saharov

            «Первые два запроса (где выбираются Ссылка и Наименование) должны быть сравнимы, потому что выбираются реальные поля из базы.» — а когда мы выводим ссылку, разве она не берет еще и поле Представление и не типо соединяет их? Ведь мы же видем не саму ссылку а так как она представленна.

            • Василий Ханевич


              (текст комментария доступен только участникам Мастер-группы)

              • maxim.saharov

                “Первые два запроса (где выбираются Ссылка и Наименование) должны быть сравнимы, потому что выбираются реальные поля из базы.» — тогда почему вы пишите, что ссылка и наименование сравнимы, если когда мы берем просто наименование, мы просто взял его и все. А когда ссылку, это взяли с базы ссылку, потом обработали и приклеили представление — это же намного тяжелее запрос получается, или я все таки не правильно что то понял? Для примера берем например документ продажи и выводим реквизит Покупатель, что является ссылка на справочник Контрагенты.

                Пока я так это понял, что если работаем с большой базой и делаем большой отчет и нам достаточно видеть текст в виде наименования — то через точку выводим наименование — это самый легкий запрос, так как через левое соединение просто выводим наименование.
                Если нам нужно вывысти именно как сделанно представление то применяем функцию Представление, которая налету анализирует, стандартное ли это представление, если да то в чем, если не стандартное то по еще по алгоритму отрабатывает и налету выводит.
                И ссылка это самое тяжелое, так как сначало с базы ссылку получаем, а потом — о типо нам же нужно вывести ее представление и поновой делаем запрос и выясняем представление и склеиваем с сылкой и выводим представление ссылки.
                Верно я все понял?)

                • Василий Ханевич


                  (текст комментария доступен только участникам Мастер-группы)

                  • maxim.saharov

                    А можно еще на таком же понятном примере описать что просходит при использовании ПРЕДСТАВЛЕНИЕ(Номенклатура.Ссылка)
                    Функция ПРЕДСТАВЛЕНИЕ на лету формирует представление или тоже потом делает дополнительные запросы для каждой ссылки по отдельности ?

                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

  13. U

    Практическое задание №18: вы в курсе, что именно такая реализация обработчика события ОбработкаПолученияПредставления приведет к невозможности получения представления групп — и, соответственно, к невозможности открытия любых форм, где отображаются группы номенклатуры? Поскольку у группы нет поля Артикул, то это будет попытка выполнить выражение
    Null + Строка

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  14. U

    Практическое задание 8: ИМХО, решение (шаблон «+7(___)___-__-__») не совсем корректное. В приведенном решении не учитываются случаи, когда вместо цифры в номере телефона оказался алфавитный символ. Проверьте:

    ВЫБРАТЬ ВЫБОР КОГДА «+7(ЧТО)ЭТО-ЗА-??» ПОДОБНО «+7(___)___-__-__» ТОГДА «ПОДОБНО!» ИНАЧЕ «НИЧЕГО ПОДОБНОГО!» КОНЕЦ КАК РезультатПроверки

    В результате окажется, что «телефонный номер» «+7(ЧТО)ЭТО-ЗА-??» вполне корректен.
    Правильное решение: «+7([0-9][0-9][0-9])[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]»

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  15. U

    Просто замечание к главе о псевдонимах полей. Вот такая попытка задать псевдоним для поля Ссылка вызывает ошибку (ключевое слово КАК здесь обязательно):

    ВЫБРАТЬ Номенклатура.Ссылка Ссылка ИЗ Справочник.Номенклатура Номенклатура

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  16. Radagast_nsk

    Задание №18 не имеет четкой постановки. Весь 2 модуль задачи решали в режиме Предприятия, а первую часть задания 18 потребовалось зайти в конфигуратор и переопределить Представление справочника «Номенклатура». А может быть так что в будущем разработчик добавит произвольное поле, которое пользователь может определять в режиме Предприятия для Представления каждого справочника и не надо кодить ничего в менеджере.

    Вопрос: В чем смысл строить Представление через конфигуратор, если я могу в запросе получить конкатенацией Артикула и Наименования тот же результат? Этот вопрос касается больше типовых конфигураций, которые на поддержке и менять их себе дороже выйдет.

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • Radagast_nsk

        Вот через расширение согласен. Схема рабочая. Спасибо!

  17. Radagast_nsk

    Приветствую!
    Объект СхемаЗапросов работает с виртуальными таблицами?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • Radagast_nsk

        Объект СхемаЗапроса полностью содержит функционал конструктора запроса?

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  18. Radagast_nsk

    Задание №7 Приведенное решение может вывести группы, содержащие в наименовании «%». Хорошо бы фильтром группы убрать из выборки товаров.

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  19. andrewkop85

    В практическом задании 17 указывается, что обращение к регистратор.дата в случае большого количества типов регистраторов замедляет запрос. И ускорить его можно с помощью функции ВЫРАЗИТЬ. Но я не могу понять как её использовать в этом конкретном примере. Предположим, нам надо выбрать только даты всех поступлений товаров. Как это сделать?

    • andrewkop85

      А все. Разобрался.
      ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.ПоступлениеТоваров).Дата

      • Калиниченко Дмитрий


        (текст комментария доступен только участникам Мастер-группы)

      • baronoleg

        а как же остальные документы — РеализацияТоваров и ПеремещениеТоваров?

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  20. andrewkop85

    Почему не работает
    ДАТАВРЕМЯ(Год(ПоступлениеТоваров.Дата),Месяц(ПоступлениеТоваров.Дата),День(ПоступлениеТоваров.Дата)) ?
    Вроде по типам параметров все ок.

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  21. gabriela

    Здравствуйте!
    В уроке 15 при выборе группы в значении параметра выдает ошибку. С чем это может быть связано?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  22. Денис Медведев

    Доброе утро. Помогите пожалуйста разобраться с оператором ВЫБОР.
    Есть запрос:

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

    Не понимаю условия : КОГДА &Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) — Если в параметр &Контрагент ничего не передается, тогда ИСТИНА?
    Спасибо

    • AlexeyDubrovin

      Если в параметр &Контрагент передать Справочник.Контрагенты.ПустаяСсылка() тогда будет истина, Если передана не пустая ссылка, то результат будет зависеть от того равны параметр и Контрагент или нет, если совсем ничего не передать — будет ошибка что параметр не передан.

      • Денис Медведев

        Да, правильнее было сказать, когда передается пустая ссылка. Мне не понятен результат ИСТИНА.
        Передал пустую ссылку — получил ИСТИНА, что это значит? Вот это не понятно.

        Все, разобрался. Этот прием разбирается в видео-уроке 8, 6 модуль.
        Если передаем пустую ссылку, получаем в секции ГДЕ ИСТИНА — значит что условия нет.

  23. alex_m

    Добрый день!
    Задание №13. При попытке получить день используя функцию

    ДАТАВРЕМЯ(Год(ПоступлениеТоваров.Дата),Месяц(ПоступлениеТоваров.Дата),День(ПоступлениеТоваров.Дата))

    Выдается сообщение об ошибке: «Неверные параметры «ДАТАВРЕМЯ»» ДАТАВРЕМЯ(Год(ПоступлениеТоваров.Дата),Месяц(ПоступлениеТоваров.Дата),День(ПоступлениеТоваров.Дата)).
    Решение преподавателя использовать «НАЧАЛОПЕРИОДА» понятно. А как можно получить дату учитывая час без секунд?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • alex_m

        Понятно, спасибо.
        Просьба проконсультировать — в функциях параметры выделяются разным цветом (черным, синим, красным), в функции «ДАТАВРЕМЯ» параметры выделены красным. Можно-ли по цвету параметров понять что это обозначает?

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  24. Андрей

    Добрый день!
    На 86-ой странице учебника допущена ошибка. В предложении «Как реализовать свою собственную простейшую консоль запроса для управляемого ПРЕДЛОЖЕНИЯ» слово «предложение» следует заменить на «приложение».

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • maxim.saharov

        на сегодня так и не исправили, когда планируете исправить ? )

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  25. Андрей

    Решение практического задание № 15 реализовано не полностью )))
    Не указан интервал дат, который выбирает пользователь. Вероятно, Вы забыли это сделать. Я так понимаю, что в конструкторе запроса в секции Условия нужно было прописать: ПоступлениеТоваров.Дата > (&ДатаНачала) И ПоступлениеТоваров.Дата < (&ДатаОкончания)

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  26. Андрей

    Добрый день!
    В практическом задании № 13 даты поставки выводятся со временем. Причем все даты приведены к началу дня. Получается, что все даты поставки в решении указаны со временем 00:00:00. А нельзя никак вообще убрать 00:00:00 ? Или придется использовать функции День, Месяц, Год?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • Андрей

        Спасибо! Вас понял. Знаю этот прием. В принципе, самое главное, чтобы в отчете выводилось красиво и грамотно.

  27. Stasturov

    Вечер добрый. При «Показе плана выполнения запроса» выдает ошибку о том, что нет прав доступа.Как можно это решить?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • Андрей

        У меня возникала такая же ошибка. При запуске 1С от имени администратора ошибка не возникает. Спасибо!

  28. mbespalov

    «Обратите внимание, что если на таблицу отсутствует право ЧТЕНИЕ, то запрос с
    использованием такой таблицы, будет выполнен с ошибкой вне зависимости от
    использования в запросе ключевого слова РАЗРЕШЕННЫЕ.»
    Запрос не будет выполнен полностью? Другие таблицы, если они еcnь, тоже не будут получены?

    • Калиниченко Дмитрий


      (текст комментария доступен только участникам Мастер-группы)

  29. mbespalov

    «Следует учитывать, что использование ключевого слова РАЗРЕШЕННЫЕ оказывает
    влияние на работу только в том случае, если на таблицы наложены ограничения доступа к
    данным (RLS).»
    Не понял, о чем речь. Если не используется RLS, то нет смысла использовать РАЗРЕШЕННЫЕ?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  30. asmut

    Добрый вечер.
    Оформлю как новый вопрос.

    Если используем в объекте конфигурации нестандартное представление, то тут уже нужно задуматься какое поле использовать.

    Когда используем виртуальное поле «Представление», то запрос следующий:

    SELECT
    T1.Артикул,
    T1.Наименование
    FROM Справочник.Номенклатура T

    Когда используем функцию «Представление(Номенклатура.Ссылка)» получаем левое соединение:

    SELECT
    T2.Артикул,
    T2.Наименование
    FROM Справочник.Номенклатура T1
    LEFT OUTER JOIN Справочник.Номенклатура T2
    ON T1.Ссылка = T2._IDRRe

    Разница в скорости отработки запроса также не в пользу функции «Представление()».

    Собственно вопрос: Поскольку еще «глубже» я не вижу как будет идти работа по «Представление», то возможно и нет разницы и там дальше данное различие нивелируется?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  31. asmut

    Добрый вечер.

    Не вижу разницы между:

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

    И

    ВЫБРАТЬ
        РеализацияТоваровТовары.Номенклатура КАК Номенклатура,
        РеализацияТоваровТовары.Ссылка.Контрагент.Родитель КАК Родитель
    ИЗ
        Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары

    поскольку разницы в скорости или отличия по соединениям в SQL — запросе нет.

    1. Какой вариант предпочтителен по «правилам хорошего тона»?
    2. Имеется ли «иной» верный вариант вытащить Родителя контрагента с меньшими затратами?

    • Калиниченко Дмитрий


      (текст комментария доступен только участникам Мастер-группы)

      • Калиниченко Дмитрий


        (текст комментария доступен только участникам Мастер-группы)

  32. asmut

    Добрый день.

    Цитата:
    Если ограничение доступа установлено на конкретное поле, такое поле будет получено из
    базы, если ограничение выполняется.
    Если ограничение доступа установлено на Прочие поля, данные будут получены, если
    ограничение выполняется для всех полей объекта, участвующих в запросе.

    Подразумевается, что данные в сам запрос при выборке попадут, допустим для расчетов и т.д., но при отображении не будут видны?

    Разберем на части:
    1. Если ограничение доступа установлено на конкретное поле, такое поле будет получено из базы — т.е. получим из базы хоть и установлено ограничение?
    2. Если ограничение выполняется — звучит как «получим если есть ограничение иначе не получим»

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  33. asmut

    Приветствую.

    Есть вот такой момент:
    При использовании функции ПРЕДСТАВЛЕНИЕ() значение представления может
    получаться одним или несколькими дополнительными запросами к базе данных.
    В основном запросе из базы данных будут извлекаться только ссылки.

    Значит:
    1. Для ссылочных реквизитов создается виртуальное «представление» как реквизит. Не обращается к базе и не тратит ресурсы?
    2. При использовании функции «Представление()» идет обращение к базе для того чтобы получить представление данного реквизита?
    3. Пункт 2 отличается от «Строка(Выборка.Ссылка)» только лишь тем, что тут каждый раз идет обращение к базе, а не как в «Выборка.ПредставлениеСсылки», где все берется из кеша?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • asmut

        По пункту 1 неверно вопрос задал:
        1. Виртуальное поле «Представление» создается системой для представления. Значит ли это, что данное виртуальное поле эффективнее к выборке чем использование функции «Представление(Контрагенты.Ссылка)». (скриншот)
        Естественно мы не учитываем, что выбирать виртуальное поле куда логичнее чем использовать функцию.

        %D0%91%D0%B5%D0%B7%D1%8B%D0%BC%D1%8F%D0%BD%D0%BD%D1%8B%D0%B9.png

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  34. viktor114

    Добрый день! подскажите пожалуйста, уловил мысль но вот чтоб точно….получается при получении поля «ссылка» в запросе, чтобы 2 раза система не бегала в БД за номальным представлениемк всегда лучше писать сразу: Представление(ссылка)? (это касаемо только ссылок?) спасибо!

    • Ольга Дмитриева

      Здравствуйте!
      Если требуется показывать ссылку пользователю, то будет правильно получать сразу представление ссылки.

      • viktor114

        а что лучше показывать, ссылку или наименование ? ну т.е я могу показать представление ссылки и могу показать наименование….как правильнее?

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  35. Markus

    Могу ли я в рамках данного курса задать еще вопрос, не совсем по теме:
    — Делаю отчет на скд, в запросе проставил параметры, на вкладке параметры галочки – «Запрещать не заполненные значения» не ставил, но при формировании отчета появляется ошибка – «Не задано значение параметра (…)», Как сделать чтобы параметр был не обязательным?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  36. Markus

    Добрый День!

    Возможно, это будет в следующих уроках курса, но у меня возник вопрос – как можно в запросе обратиться к элементам справочников, если они не предопределенные (не через параметр, а именно в самом запросе). В самом начале курса было показано, как это сделать не через запрос, а на встроенном языке, например, «НайтиПоНаименованию» или «по коду» или «по реквизиту», а можно ли то же самое сделать в запросе?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  37. Tihonidy

    «Показывать план выполнения запроса» в Консоли запросов — только для управляемых приложений?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  38. User108080

    Добрый день! В консоли запросов функционал ограничен и не позволяет выполнять запросы в том объеме, как в видеоуроках. Во-первых, за закладке «Условия» в правом окне «Условие» нет полей «Номер» и «Произвольное». Во-вторых, при написании вложенного запроса с помощью окна «Произвольное выражение» нет возможности написать вложенный запрос, потому что выделяя пробел в скобках и нажимая правую кнопку мыши, в контекстном меню нет «Конструктора запроса». Скрины прилагаю. Подскажите, пожалуйста, как исправить ошибку. Спасибо.

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • User108080

        Скачал с сайта ИТС консоль запросов 8.2 обычное приложение. При написании вложенного запроса невозможно увидеть скопированный текст или написанный вручную в окне, которое отражено на скриншоте. После чего нажав, на «Выполнить запрос» (зеленая стрелка), появляется окно как на втором скриншоте (Текст запроса ВЫБРАТЬ 1 на черном фоне). Это можно как-то исправить?

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

          • User108080

            В окне «Запрос» при нажатии на левую кнопку «Редактировать запрос», как Вы пишете, поле должно перейти в режим редактирования (либо вручную, либо скопированный текст). У меня после нажатия кнопки»Редактировать запрос» поле для редактирования не доступно.

            • Василий Ханевич


              (текст комментария доступен только участникам Мастер-группы)

  39. User108080

    Добрый день! В видеоуроке №23 при проставлении «галочки» «Показывать план выполнения запроса» выходит сообщение об ошибке, скрин прилагаю. Подскажите, пожалуйста, вариант решения проблемы.

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  40. User108080

    Добрый день! В видеоуроке №21 второго модуля рассказывается о написании внешней обработки, которая прилагается в качестве доп.материала курса под названием «Консоль(Query-2-Syntax-21)». Когда в пользовательском режиме открываю эту обработку, то при нажатии на кнопку «Конструктор», появляется ошибка. Скрин прилагаю. Подскажите, как устранить ошибку.

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • User108080

        Добрый день! Ваш совет помог. Спасибо.

  41. Галина Глушкова

    Здравствуйте. Скачаны с ИТС свежие консоли запросов и демонстрационная база 8.3 «Управляемое приложение». Просматриваю видеоуроки (сейчас 14 видео модуля 2) и пытаюсь повторять всё, что в них показывается. Возникла проблемка. Не могу в параметры запроса выбрать группу справочника. Любая консоль на демонстрационной базе не дает выбрать группу. Эти же консоли на других базах группу выбирать дают. Делаю вывод, что это в базе какая-то настройка включена. Помогите, пожалуйста, разобраться.

    %D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0%D0%92%D1%8B%D0%B1%D0%BE%D1%80%D0%B0%D0%93%D1%80%D1%83%D0%BF%D0%BF%D1%8B%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B0.JPG

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • Галина Глушкова

        Спасибо, Василий. У меня получилось. Я предполагала, что копать нужно в сторону консоли. Но, ведь, именно эта же самая консоль на другой базе (ERP, 8.3.12) работала без её корректировки, свойство ВыборГруппИЭлементов было в значении АВТО, и группы выбирались.

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  42. alenka89

    Добрый вечер!
    1. Подскажите пожалуйста, почему в конструкторе запросов (вкладка «условие») сама строка условия выглядит иначе, чем у вас? При этом самой 1С конструктор запросов выглядит как у вас. Скриншоты прикрепила. ИнструментыРазработчикаКонсольЗапросов.epf была скачана с оф.сайта 1С
    По умолчанию мне условие всегда приходится писать вручную, это ужасно неудобно и долго, можно ли ее «исправить»?
    2. Также иногда появляется ошибка «Неизвестный идентификатор формы» — из-за чего?
    3. Задание 16: в режиме просмотра плана выполнения запроса (выводить имена реквизитов и объектов метаданных) отображаются названия таблиц как они хранятся в БД. Почему так происходит?
    Fields:(
    T1.Номенклатура,
    T2.Артикул
    )
    _DOCUMENT53_VT82 (T1) FULL SCAN

    NESTED OUTER LOOP
    _REFERENCE26 (T2) RANGE SCAN USING INDEX (_IDRREFIDX) (1 fields)
    WHERE
    (T1.Номенклатура = T2._IDRRef)

    Statistics: RecordsScanned = 52, ParseTime = 0, ExecuteTime = 0, BuffersMemory = 25850, ResultRecords = 26, RecordSize = 50

    • AlexeyDubrovin

      1) забыли приложить картинки
      2) в какой момент возникает ошибка?
      3) то ли обработка у Вас с глюками, то ли платформа. Отправил консоль на почту

      • alenka89

        Скрины загружала, отправляю повторно.
        Ошибка возникает при вызове конструктора запросов. Конкретнее выяснить не удалось, т.е. иногда появляется, рандомно..
        Консоль управляемого приложения, которую вы мне отправили ведет себя также. Такое поведение наблюдается в 1С:Предприятие 8.3 (8.3.13.1644) и 1С:Предприятие 8.3, учебная версия (8.3.12.1855).

        %D0%9A%D0%BE%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D0%BE%D1%80%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0%20-%20%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B5%20%D0%B2%20%D1%80%D0%B5%D0%B6%D0%B8%D0%BC%D0%B5%20%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F.jpg%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D0%BE%D1%80%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0%20%D1%81%D1%80%D0%B0%D0%B7%D1%83%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%20%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8%20%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F.jpg

        • AlexeyDubrovin

          В чем глобальное отличие ? На одной картинке строка условие в состоянии редактирования (нажали ентер или щнлкнули мышкой), на второй в обычном состоянии.

          По вылету ошибки — похоже какой-то глюк платформы

          • alenka89

            В скриншотах выше — как выглядит поле «условие» у меня сразу после добавления условия и в режиме редактирования, а на скрине в этом сообщении — желаемый результат. Вопрос: в чем причина такого поведения обработки консоли запросов и можно ли это исправить? Повторюсь: в самом конфигураторе платформы конструктор запросов нормально отображает содержимое вкладки «условия». Также, есть альтернативная консоль запросов «универсальная», в ней все нормально.

            111.jpg

            • AlexeyDubrovin

              Зачем что-то исправлять, если оно работает ? Ну разные консоли. Не нравится одна — пользуйтесь другой, которая нравится больше. Их сейчас много

      • alenka89

        Задание № 18 — в результате запроса в поле «представление» для групп: у меня пусто, в видео с этим заданием — NULL, почему?

        %D0%97%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5%2018.jpg

        • AlexeyDubrovin

          Разные версии платформы, наверное.
          У меня вообще ошибку выдало на эту строку Представление = Данные.Артикул + » — » + Данные.Наименование;
          В группах у нас нет артикула, поэтому возвращается NULL. На моей версии платформы ругнулось, что не может сложить NULL и строку

  43. alenka89

    Здравствуйте! Пример №6, текущего модуля — пожалуйста, разъясните подробнее, что происходит в этом запросе, каков будет результат выполнения этого запроса, в каких случаях может понадобится такой запрос; не поняла, как используется в данном случае функция «Выразить»: Выразить (ТоварныеЗапасы.Регистратор КАК Документ.РасходТовара).Номер КАК Номер ; какие в данном примере могут быть «лишние» неявные соединения, как именно ускоряется работа запроса?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  44. isp06@mail.ru

    Добрый день может кто подсказать((( запутался….

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |   ОбращениеКлиентаКонтактнаяИнформация.Представление КАК Представление
    |ИЗ
    |   Документ.ОбращениеКлиента.КонтактнаяИнформация КАК ОбращениеКлиентаКонтактнаяИнформация";

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Если ЗначениеЗаполнено(ВыборкаДетальныеЗаписи)Тогда

    СсылкаНаТелефон = Документы.ОбращениеКлиента.НайтиПоРеквизиту("Телефон","");
    ТелСт1 = СсылкаНателефон.ПолучитьОбъект();
    ТелСт = ТелСт1;
    ТелСТ.Телефон = ВыборкаДетальныеЗаписи.Представление;
    ТелСт.Записать()

    КонецЕсли;
    КонецЦикла;

    Хочу данные из ТЧ записать в реквизит Телефон для формы списка.

    Пишет не выбран элемент(.

    Не могли бы подсказать и как решить проблему?)
    по урокам пока вопросов нету)

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • isp06@mail.ru

        Не помогло. записывает первый номер во все документы. а нужно что бы искал из документов и записывал в переменную.Ну спасибо за наводку.

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

          • isp06@mail.ru
               "ВЫБРАТЬ
            |   ФИОФизическихЛицСрезПервых.Период КАК Период,
            |   ФИОФизическихЛицСрезПервых.Фамилия КАК Фамилия,
            |   ФИОФизическихЛицСрезПервых.Имя КАК Имя,
            |   ФИОФизическихЛицСрезПервых.Отчество КАК Отчество
            |ПОМЕСТИТЬ ПервыхСрез
            |ИЗ
            |   РегистрСведений.ФИОФизическихЛиц.СрезПервых КАК ФИОФизическихЛицСрезПервых
            |;
            |
            |////////////////////////////////////////////////////////////////////////////////
            |ВЫБРАТЬ
            |   Скоринг.Дата КАК Дата,
            |   Скоринг.ФизическоеЛицо.Фамилия КАК ФизическоеЛицоФамилия,
            |   Скоринг.ФизическоеЛицо.Имя КАК ФизическоеЛицоИмя,
            |   Скоринг.ФизическоеЛицо.Отчество КАК ФизическоеЛицоОтчество
            |ПОМЕСТИТЬ Скоринг
            |ИЗ
            |   Документ.Скоринг КАК Скоринг
            |;
            |
            |////////////////////////////////////////////////////////////////////////////////
            |ВЫБРАТЬ
            |   ФИОФизическихЛицСрезПоследних.Период КАК Период,
            |   ФИОФизическихЛицСрезПоследних.Фамилия КАК Фамилия,
            |   ФИОФизическихЛицСрезПоследних.Имя КАК Имя,
            |   ФИОФизическихЛицСрезПоследних.Отчество КАК Отчество
            |ПОМЕСТИТЬ ПоследнихСрез
            |ИЗ
            |   РегистрСведений.ФИОФизическихЛиц.СрезПоследних КАК ФИОФизическихЛицСрезПоследних";

            Добрый день.Не могли бы подсказать.

            У меня есть документы в них есть физ.лица которые имеют регистр ФИОФизическихЛиц
            Измерения физлицо= ссылкаФизлицо
            Ресурсы
            фамилия
            имя
            отчество
            в регистре есть период с который действует новая фамилия
            Как можно составить запрос таким образом что бы при изменении допустим фамилии
            в старых документах не менялась фамилия.
            с 01.01.2018 был Иванова Ирина Петровна
            документ от 01.02.2018 №1 что бы остался под ивановой
            а с 01.03.2018 стала Петрова Ирина Петровна
            а документ 01.04.2018 был уже под Петровой

            В документе имеется дата документа которая равна дате записи документа
            может с ней сравнивать…

            • AlexeyDubrovin

              Насколько я понимаю, регистр периодический ? Тогда нужно обращаться к виртуальной таблице СрезПоследних

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

              В параметр ДатаДокумента передать Дату документа, а в СписокФЛ — массив ссылок на физлиц в этом документе

              • isp06@mail.ru

                Насчет массива не понял. нужно в модуле объекта массив сделать?

                мне же нужно что бы ФИО в документе не перезаписывалось(

                • AlexeyDubrovin

                  Документы бывают разные и работают они по-разному. Про запрос я Вам ответил, а про документ попробую ответить, если Вы опишете подробно логику работы документа.
                  Почему в нем должно что-то переписываться ? Или Вы имеете ввиду, что у физлица изменяют ФИО и оно во всех документах встает с новым ФИО ?
                  Так это естественно. Тут уже не столько тема запросов, сколько тема разработки интерфейсов и логики работы конкретного приложения. В какой момент и как применить шаблон запроса, который я Вам дал, как отрисовать полученные данные на форме — это уже специфика конкретного решения

                  • isp06@mail.ru

                    Все как вы описали . Можете подсказатЬ? или нужно в раздел по формам обращаться?

                    • AlexeyDubrovin

                      Лучше, наверное, в разработку интерфейсов и форм, здесь это немного за рамками темы. Только опишите подробнее. Желательно со скринами

                • Василий Ханевич


                  (текст комментария доступен только участникам Мастер-группы)

                  • isp06@mail.ru

                    Есть 2 регистра периодических ФИО где есть Измерения — ссылкаконтрагент И я добавил еще 1 измерение куда я записываю фио до изменения и есть ресурсы ф-и-о
                    а также 2 регистр УДОСТОВЕРЕНИЯЛИЧНОСТИ
                    где есть также физлицо -ссылка физ.лицо и паспортные данные

                    Дело в том что пример взял был я так понял из Зуп 3.1
                    ну там был реализован документ где записывался контрагент и из него уже бралась информаци.
                    а у меня получается сразу пишется в контрагент и получается из данных прошлого периода остается только ФИО ну так как я добавил новое измерения строк я там складываю фио и получаю полное представления контрагента который был до. Может тогда его тоже передать в регистры документы и там уже сравнивать на уровни 1го регистра. Вообщем я запутался\(((Скрины покажу щас

                    • isp06@mail.ru

                      Получается у меня есть форма создания контрагента допустим если это Петрова Елизовета Андреевна которых получил паспорт в свои 16 лет 2010г
                      а потом он спустя 9 лет опять пришела и в 25 у него уже другой паспорт
                      тогда я выбираю пункт изменить данные выбираю дату с которой будут действовать новые данные и старый документ который был создан 9 лет назад не должен сменить фамилию
                      а у меня получается что меняется9.

                      %D0%A0%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%20%D0%A4%D0%98%D0%9E.jpg%D0%A0%D0%95%D0%93%D0%98%D0%A1%D0%A2%D0%A0%20%D0%94%D0%9E%D0%9A%D0%A3%D0%9C%D0%95%D0%9D%D0%A2%D0%AB.jpg

                  • isp06@mail.ru
                    ВЫБРАТЬ
                        ФИОФизическихЛиц.Период КАК Период,
                        ФИОФизическихЛиц.ФиоПеред КАК ФиоПеред,
                        ФИОФизическихЛиц.Фамилия КАК Фамилия,
                        ФИОФизическихЛиц.Имя КАК Имя,
                        ФИОФизическихЛиц.Отчество КАК Отчество
                    ПОМЕСТИТЬ Вт_фио
                    ИЗ
                        РегистрСведений.ФИОФизическихЛиц КАК ФИОФизическихЛиц
                    ;

                    ////////////////////////////////////////////////////////////////////////////////
                    ВЫБРАТЬ
                        ДокументыФизическихЛиц.Период КАК Период,
                        ДокументыФизическихЛиц.Физлицо КАК Физлицо,
                        Вт_фио.ФиоПеред КАК ФиоПеред,
                        ДокументыФизическихЛиц.ВидДокумента КАК ВидДокумента,
                        ДокументыФизическихЛиц.Серия КАК Серия,
                        ДокументыФизическихЛиц.Номер КАК Номер,
                        ДокументыФизическихЛиц.КодПодразделения КАК КодПодразделения,
                        ДокументыФизическихЛиц.ДатаВыдачи КАК ДатаВыдачи,
                        ДокументыФизическихЛиц.КемВыдан КАК КемВыдан
                    ИЗ
                        Вт_фио КАК Вт_фио
                            ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыФизическихЛиц КАК ДокументыФизическихЛиц
                            ПО Вт_фио.Период = ДокументыФизическихЛиц.Период

                    Таким запросом ( с вашего урока я смог получить все записи которые равны обоим регистрам)скрин прикладываю
                    Где поле фиоперед я получаю строку из фио

                    %D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%20%D0%B8%D0%B7%20%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0.jpg

                  • isp06@mail.ru

                    Вообщем проблема у меня оказывается в записи физического лица. получается нету запретов на период который был до что бы не перезаписывал.

                    • isp06@mail.ru

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

                      %D1%84%D0%B8%D0%BE%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5.png

                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

                    • isp06@mail.ru

                      Можно более подробно как это реализовать\?, или тут могу ответы только по запросам получить?

                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

                    • isp06@mail.ru

                      Брать контрагента у которого менялась 2 раза фамилия и установить дату в тот момент когда менялась тогда где фам,имя,отчество получаю как и в регистре то что было до а в физлице получается уже последнее значение

                    • isp06@mail.ru

                      Для полноты картины

                      Форма Документа
                      Борюсь какую неделю уже не могу понять(((

                      &НаСервере
                      Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
                         // СтандартныеПодсистемы.КонтактнаяИнформация
                          ДополнительныеПараметры = УправлениеКонтактнойИнформацией.ПараметрыКонтактнойИнформации();
                          ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаКонтактнаяИнформация");
                          УправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, Объект, ДополнительныеПараметры);
                          // Конец СтандартныеПодсистемы.КонтактнаяИнформация
                         
                         
                          Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
                              ДокументыФизическихЛиц.ВидДокумента = Справочники.ВидыДокументовФизическихЛиц.ПаспортРФ;
                              ДокументыФизическихЛиц.Период = ТекущаяДата();
                             
                              МассивФИО = СтрРазделить(Объект.Наименование, " ", Ложь);
                              Если МассивФИО.Количество() = 1 Тогда
                                  Объект.Фамилия         = МассивФИО[0];
                              ИначеЕсли МассивФИО.Количество() = 2 Тогда
                                  Объект.Фамилия     = МассивФИО[0];
                                  Объект.Имя         = МассивФИО[1];
                              ИначеЕсли МассивФИО.Количество() >= 3 Тогда
                                  Объект.Фамилия     = МассивФИО[0];
                                  Объект.Имя         = МассивФИО[1];
                                  Объект.Отчество       = МассивФИО[2];           
                              КонецЕсли;
                              Объект.Наименование = АТКСервер.СформироватьФИОФизическогоЛица(Объект.Фамилия, Объект.Имя, Объект.Отчество);
                             
                          КонецЕсли;
                             
                      КонецПроцедуры

                      &НаСервере
                      Процедура ПриЧтенииНаСервере(ТекущийОбъект)
                          // СтандартныеПодсистемы.КонтактнаяИнформация
                          УправлениеКонтактнойИнформацией.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
                          // Конец СтандартныеПодсистемы.КонтактнаяИнформация
                         
                          //Заполняем паспортные данные
                          АТКСервер.ЗаполнитьДокументУдостоверяющийЛичность(ЭтотОбъект, ТекущийОбъект);
                         
                             
                         
                      КонецПроцедуры

                      &НаСервере
                      Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
                          // СтандартныеПодсистемы.КонтактнаяИнформация
                          УправлениеКонтактнойИнформацией.ОбработкаПроверкиЗаполненияНаСервере(ЭтотОбъект, Объект, Отказ);
                          // Конец СтандартныеПодсистемы.КонтактнаяИнформация
                      КонецПроцедуры

                      &НаСервере
                      Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
                          // СтандартныеПодсистемы.КонтактнаяИнформация
                          УправлениеКонтактнойИнформацией.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
                          // Конец СтандартныеПодсистемы.КонтактнаяИнформация
                      КонецПроцедуры

                      &НаСервере
                      Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
                             
                          ПараметрыФЛ = Новый Структура;
                          ПараметрыФЛ.Вставить("Ссылка", ТекущийОбъект.Ссылка);
                          ПараметрыФЛ.Вставить("Фамилия", Объект.Фамилия);
                          ПараметрыФЛ.Вставить("Имя", Объект.Имя);
                          ПараметрыФЛ.Вставить("Отчество", Объект.Отчество);
                          ПараметрыФЛ.Вставить("УстановитьНовыеФИО", УстановитьНовыеФИО);
                          ПараметрыФЛ.Вставить("ДатаСохраненияНовыхФИО", ДатаСохраненияНовыхФИО);
                         
                          АТКСервер.ЗаписатьИсториюФИОФизическихЛиц(ПараметрыФЛ);
                         
                         
                          АТКСервер.ЗаписьДокументаУдостоверяющегоЛичность(ТекущийОбъект.Ссылка, ИзменилисьДанныеДокументаУдостоверяющегоЛичность, ДокументыФизическихЛиц);      
                         
                      КонецПроцедуры





                      &НаКлиенте
                      Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
                         
                         
                         
                          Если УстановитьНовыеФИО Тогда
                              Если ДатаСохраненияНовыхФИО = Дата(0001,01,01) Тогда
                                  Отказ = Истина;
                                  Сообщить("Для установки новых ФИО необходимо указать дату, с которой будут действовать новый значения!");    
                              КонецЕсли;
                          КонецЕсли;
                         
                          Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
                              Объект.ДатаСоздания = ТекущаяДата();      
                          КонецЕсли;
                          КонецПроцедуры



                      &НаКлиенте
                      Процедура ФамилияПриИзменении(Элемент)
                          Объект.Фамилия = СокрЛП(Объект.Фамилия);
                         
                             
                          Объект.Наименование = АТКСервер.СформироватьФИОФизическогоЛица(Объект.Фамилия, Объект.Имя, Объект.Отчество);
                         
                      КонецПроцедуры

                      &НаКлиенте
                      Процедура ИмяПриИзменении(Элемент)
                          Объект.Имя = СокрЛП(Объект.Имя);
                          Объект.Наименование = АТКСервер.СформироватьФИОФизическогоЛица(Объект.Фамилия, Объект.Имя, Объект.Отчество);
                      КонецПроцедуры

                      Процедура ОтчествоПриИзменении(Элемент)
                          Объект.Отчество = СокрЛП(Объект.Отчество);
                          Объект.Наименование = АТКСервер.СформироватьФИОФизическогоЛица(Объект.Фамилия, Объект.Имя, Объект.Отчество);
                      КонецПроцедуры

                      ОбщийМодуль

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

                      &НаСервере
                      Процедура ЗаписатьИсториюФИОФизическихЛиц(ПараметрыФЛ) Экспорт

                          СтруктураОтбора = Новый Структура;
                          СтруктураОтбора.Вставить("ФизическоеЛицо", ПараметрыФЛ.Ссылка);
                          ИсторияФИО = РегистрыСведений.ФИОФизическихЛиц.СрезПоследних(,СтруктураОтбора);
                         
                          НаборЗаписей = РегистрыСведений.ФИОФизическихЛиц.СоздатьНаборЗаписей();
                          НаборЗаписей.Отбор.ФизическоеЛицо.Установить(ПараметрыФЛ.Ссылка);
                         
                          НаборЗаписей.Прочитать(); 
                         
                          Если НаборЗаписей.Количество() > 0 И НЕ ПараметрыФЛ.УстановитьНовыеФИО Тогда //перезаписываем последнюю запись 
                             
                              Для каждого Запись Из НаборЗаписей Цикл
                                  Если ИсторияФИО[0].Период = Запись.Период Тогда
                                      Запись.Фамилия = ПараметрыФЛ.Фамилия;       
                                      Запись.Имя = ПараметрыФЛ.Имя;       
                                      Запись.Отчество = ПараметрыФЛ.Отчество;       
                                  КонецЕсли;
                              КонецЦикла;
                             
                          Иначе //создаем первую/новую запись       
                                 
                              НоваяЗапись = НаборЗаписей.Добавить();
                              НоваяЗапись.Фамилия = ПараметрыФЛ.Фамилия;     
                              НоваяЗапись.Имя = ПараметрыФЛ.Имя;     
                              НоваяЗапись.Отчество = ПараметрыФЛ.Отчество;     
                              НоваяЗапись.ФизическоеЛицо = ПараметрыФЛ.Ссылка;
                              Если  ПараметрыФЛ.УстановитьНовыеФИО Тогда
                                  Период = ПараметрыФЛ.ДатаСохраненияНовыхФИО;    
                              Иначе
                                  Период = ТекущаяДата();       
                              КонецЕсли;
                              НоваяЗапись.Период = Период;
                         
                          КонецЕсли;
                         
                          НаборЗаписей.Записать();   

                      КонецПроцедуры

                      &НаСервере
                      Функция СформироватьФИОФизическогоЛица(Фамилия, Имя, Отчество) Экспорт
                         
                          Наименование = Фамилия;
                          Наименование = Наименование + ?(Имя = "", "", " " + Имя);
                          Наименование = Наименование + ?(Отчество = "", "", " " + Отчество);
                         
                          Возврат Наименование;

                      КонецФункции


                      &НаСервере
                      Процедура ЗаписьДокументаУдостоверяющегоЛичность(ФизическоеЛицо, ИзменилисьДанныеДокументаУдостоверяющегоЛичность, ДокументыФизическихЛиц) Экспорт

                          СтруктураОтбора = Новый Структура;
                          СтруктураОтбора.Вставить("Физлицо", ФизическоеЛицо);
                          ДокументыФизическогоЛица = РегистрыСведений.ДокументыФизическихЛиц.СрезПоследних(,СтруктураОтбора);
                         
                          НаборЗаписей = РегистрыСведений.ДокументыФизическихЛиц.СоздатьНаборЗаписей();
                          НаборЗаписей.Отбор.Физлицо.Установить(ФизическоеЛицо);
                         
                          НаборЗаписей.Прочитать(); 
                         
                          //перезаписываем последнюю запись
                          Если НаборЗаписей.Количество() > 0 И НЕ ИзменилисьДанныеДокументаУдостоверяющегоЛичность Тогда    
                             
                              Для каждого Запись Из НаборЗаписей Цикл
                                  Если ДокументыФизическогоЛица[0].Период = Запись.Период Тогда
                                      ЗаполнитьЗначенияСвойств(Запись, ДокументыФизическихЛиц);
                                      Запись.Физлицо = ФизическоеЛицо;
                                  КонецЕсли;
                              КонецЦикла;      
                             
                          //создаем первую/новую запись
                          ИначеЕсли НаборЗаписей.Количество() = 0 ИЛИ ИзменилисьДанныеДокументаУдостоверяющегоЛичность Тогда                                                                            
                             
                              НоваяЗапись = НаборЗаписей.Добавить();
                              ЗаполнитьЗначенияСвойств(НоваяЗапись, ДокументыФизическихЛиц);
                              НоваяЗапись.Физлицо = ФизическоеЛицо;
                         
                          КонецЕсли;
                         
                          НаборЗаписей.Записать();
                         

                      КонецПроцедуры
                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

                    • isp06@mail.ru

                      Так у меня также все получается…. я вижу прошлые ФИО вопрос( был такой как их сопоставить с документами.) и в списках документах получать старые ФИО( в другом разделе подсказали что писать из в отдельных реквизит ) ну , потом вывести в список документов. В отчетах я могу то сделать отбор)

                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

                    • isp06@mail.ru

                      Понял спасибо. Думаю лучше через отчет

                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

                    • isp06@mail.ru

                      Спасибо вам огромное, и за уроки очень полезные.

                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

              • isp06@mail.ru

                Просто еще чуток не пойму в какой момент это должно произойти,

      • isp06@mail.ru

        Решил таким путем. тогда будет выбирать нужные номера из документа

            Запрос = Новый Запрос;
            Запрос.Текст = "ВЫБРАТЬ
                           |    ОбращениеКлиентаКонтактнаяИнформация.Представление КАК Представление
                           |ИЗ
                           |    Документ.ОбращениеКлиента.КонтактнаяИнформация КАК ОбращениеКлиентаКонтактнаяИнформация";
               
           
            РезультатЗапроса = Запрос.Выполнить();
            ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
            Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                СсылкаНаТелефон = Документы.ОбращениеКлиента.НайтиПоРеквизиту("Телефон","");
                Если НЕ СсылкаНаТелефон = Документы.ОбращениеКлиента.ПустаяСсылка()
                    Тогда
                    ТелСт = СсылкаНателефон.ПолучитьОбъект();
                   
                    ТелСт1 = ТелсТ.КонтактнаяИнформация.Получить(0);
                     
                   
                    ТелСТ.Телефон = ТелСт1.Представление;
                    ТелСт.Записать()
        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

          • isp06@mail.ru

            Буду проверять на пустой индекс. если пустой тогда возврат.

            Спасибо) как добраться до таблицы в ваших уроках увидел.)

          • isp06@mail.ru

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

            • Василий Ханевич


              (текст комментария доступен только участникам Мастер-группы)

              • isp06@mail.ru
                        Запрос = Новый Запрос;
                    Запрос.Текст = "ВЫБРАТЬ
                                   |    ОбращениеКлиентаКонтактнаяИнформация.Представление КАК Представление
                                   |ИЗ
                                   |    Документ.ОбращениеКлиента.КонтактнаяИнформация КАК ОбращениеКлиентаКонтактнаяИнформация";
                       
                   
                   
                   
                   
                   
                    РезультатЗапроса = Запрос.Выполнить();
                    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
                   
                   
                    //МассивЧисел = Новый Массив();
                    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                        СсылкаНаТелефон = Документы.ОбращениеКлиента.НайтиПоРеквизиту("Телефон","");
                        Если НЕ СсылкаНаТелефон = Документы.ОбращениеКлиента.ПустаяСсылка()
                            Тогда
                            ТелСт = СсылкаНателефон.ПолучитьОбъект();
                           
                            //ТелМас = ТелСт.КонтактнаяИнформация.Выгрузить(МассивЧисел,);  
                            //ТелМас.Индекс(1);
                           
                           
                                   
                       
                       
                            ТелСт1 = ТелсТ.КонтактнаяИнформация.Получить(0);
                            ТелСТ1.Телефон = ТелСт1.Представление;
                            ТелСт.Записать()
                           
                           
                    КонецЕсли;
                       
                       
                    КонецЦикла;

                    РезультатЗапроса = Запрос.Выполнить();
                    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
                   
                   
                    //МассивЧисел = Новый Массив();
                    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                        СсылкаНаТелефон = Документы.ОбращениеКлиента.НайтиПоРеквизиту("Телефон","");
                        Если НЕ СсылкаНаТелефон = Документы.ОбращениеКлиента.ПустаяСсылка()
                            Тогда
                            ТелСт = СсылкаНателефон.ПолучитьОбъект();
                           
                            //ТелМас = ТелСт.КонтактнаяИнформация.Выгрузить(МассивЧисел,);  
                            //ТелМас.Индекс(1);
                           
                           
                                   
                       
                       
                            ТелСт1 = ТелсТ.КонтактнаяИнформация.Получить(0);
                            ТелСТ1.Телефон = ТелСт1.Представление;
                            ТелСт.Записать()
                           
                           
                    КонецЕсли;
                       
                       
                    КонецЦикла;

                Добрый день не могли бы посмотреть код( не как не могу проверить на 0 значение индекса(

                • Василий Ханевич


                  (текст комментария доступен только участникам Мастер-группы)

                  • isp06@mail.ru

                    Извиняюсь за свое не понимание((( ну никак не могу разобраться не могу пройти пустую ТЧ
                    может быть подскажете как это сделать. что бы пройти 0 тч
                    Даже не 0 тч а
                    пустую

                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

                    • isp06@mail.ru

                      Вообщем я вчера к этому и пришел просто не думал что количество будет отвечать за количество таблиц в ТЧ
                      сделал. еще в конце записал в пустой реквизит данные что бы можно было искать след.документ.
                      ну вообщем спасибо вам.

                      Запрос = Новый Запрос;
                          Запрос.Текст = "ВЫБРАТЬ
                                         |    ОбращениеКлиентаКонтактнаяИнформация.Представление КАК Представление
                                         |ИЗ
                                         |    Документ.ОбращениеКлиента.КонтактнаяИнформация КАК ОбращениеКлиентаКонтактнаяИнформация";
                             
                         
                         
                         
                         
                         
                          РезультатЗапроса = Запрос.Выполнить();
                          ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
                         
                         
                              Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                              СсылкаНаТелефон = Документы.ОбращениеКлиента.НайтиПоРеквизиту("Телефон","");
                              Если НЕ СсылкаНаТелефон = Документы.ОбращениеКлиента.ПустаяСсылка()
                                  Тогда
                                  ТелСт = СсылкаНателефон.ПолучитьОбъект();
                                 
                                             
                                  Если ТелСт.КонтактнаяИнформация.Количество() > 0    
                             
                                  Тогда
                                  ТелСт1 = ТелсТ.КонтактнаяИнформация.Получить(0);
                                  ТелСТ.Телефон = ТелСт1.Представление;
                                  ТелСт.Записать()
                              Иначе
                                  ТелСт.Телефон = "Без номера";         
                                  ТелСт.Записать();
                                  КонецЕсли
                                 
                          КонецЕсли;
                             
                             
                          КонецЦикла;
                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

                  • isp06@mail.ru

                    Еще вопрос
                    Как вы вызываете в окне заполнения
                    новой процедуры.

                    написали проц жали клавиши дает возможность ввести имя и где производится процедура

                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

                    • isp06@mail.ru

                      хотел бы спросить про уничтожения таблиц. Для чего такой механизм:?

                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

                    • isp06@mail.ru

                      Еще бы 1 вопрос хотел уточнить.
                      Я искал допустим пустой реквизит и заполнял его. а как мне теперь искать заполненный реквизит. и пробегаться по нему смотреть не изменилось ли представление если да то менять.

                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

                    • isp06@mail.ru

                      Так мне то нужно найти заполненый реквизит.
                      СсылкаКомментарий = Документы.ОбращениеКлиента.НайтиПоРеквизиту(«КомментарийИзДокумента»,Истина);
                      то есть найти реквезит в котором уже есть значение и дописать туда если значения менялись.

                      я ищу документ где не записан комментарий так как у меня комментарий сделан через регистр и со связки документов добавляются через ссылку то при добавлении его в форму списка при 2х комментарий ругается что 2 ссылки. тогда я решил записывать в отдельный реквизит. Получается первой процедурой я обхожу документы и где у меня есть комментарий я добавляю его. а как обойти заново документы которые уже содержат документы. допустим дописали комментарий. хочу обойти и если выборка не = коменту тогда перезаписать.

                      Процедура ПолучитьКомментарий()
                         
                         
                                  //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
                          // Данный фрагмент построен конструктором.
                          // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
                         
                          Запрос = Новый Запрос;
                          Запрос.Текст =
                              "ВЫБРАТЬ
                              |   ОбращениеКлиента.КомментарийИзДокумента КАК КомментарийИзДокумента,
                              |   КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Комментарии.Обращение.Ссылка) КАК ОбращениеСсылка,
                              |   ПОДСТРОКА(Комментарии.Комментарий, 1, 500) КАК Комментарий,
                              |   Комментарии.Дата КАК Дата,
                              |   Комментарии.Пользователь КАК Пользователь,
                              |   Комментарии.Обращение.Номер КАК ОбращениеНомер
                              |ИЗ
                              |   РегистрСведений.Комментарии КАК Комментарии
                              |       ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОбращениеКлиента КАК ОбращениеКлиента
                              |       ПО Комментарии.Документ = ОбращениеКлиента.Ссылка
                              |           И Комментарии.Обращение = ОбращениеКлиента.Ссылка
                              |
                              |СГРУППИРОВАТЬ ПО
                              |   ПОДСТРОКА(Комментарии.Комментарий, 1, 500),
                              |   ОбращениеКлиента.КомментарийИзДокумента,
                              |   Комментарии.Дата,
                              |   Комментарии.Пользователь,
                              |   Комментарии.Обращение.Номер";
                         
                          РезультатЗапроса = Запрос.Выполнить();
                         
                          ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
                         
                          Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                           //СсылкаКомментарий1 = Документы.ОбращениеКлиента.НайтиПоРеквизиту("КомментарийИзДокумента",Истина);
                           СсылкаКомментарий = Документы.ОбращениеКлиента.НайтиПоРеквизиту("КомментарийИзДокумента","");
                              Если НЕ СсылкаКомментарий = Документы.ОбращениеКлиента.ПустаяСсылка()
                                  Тогда
                              Коммент = СсылкаКомментарий.ПолучитьОбъект();
                          //Коммент1 =   СсылкаКомментарий1.ПолучитьОбъект();
                               КонецЕсли;
                           
                               Если Коммент = Неопределено Тогда
                                    Прервать;
                                   
                               КонецЕсли;
                               Если ВыборкаДетальныеЗаписи.ОбращениеНомер = Коммент.Номер
                                    И Коммент.КомментарийИзДокумента = ""  Тогда
                                    Коммент.КомментарийИзДокумента = ВыборкаДетальныеЗаписи.Комментарий;
                               
                                    Коммент.Записать();
                               
                               КонецЕсли;
                               
                              КонецЦикла;
                         


                         
                         
                         
                          КонецПроцедуры
                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

                    • isp06@mail.ru

                      А если новый комментарий добавить он допишет

                    • isp06@mail.ru

                      Я правильно понял. он получается всегда будет проверять эти комментарии

                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

                    • isp06@mail.ru

                      у меня еще такая проблема я из 4х документов записываю в 1 регистр комментарии и они хранятся в разрезе цикла документов которые относятся к этой сделки.
                      обращения -скоринг -осмотр-заключение

                      на любом этапе могут добавить комментарий.
                      все комментарии должны хранится в регистре и только последний вывожу в списко.
                      решил это избыточным реквизитом

                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

                    • isp06@mail.ru

                      | ЕСТЬNULL(Комментарии.Комментарий, «»»») КАК Комментарий

                      Вы такой код пишите что бы если был Null он был пустой строкой??

                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

                    • isp06@mail.ru

                      СсылкаНаТелефон = Документы.ОбращениеКлиента.НайтиПоРеквизиту("Телефон",""); мне в таком контексте нужно

                      СсылкаНаТелефон = Документы.ОбращениеКлиента.НайтиПоРеквизиту("Телефон",ЗначениеЗаполнено(Реквизит)); так получается?

                    • Василий Ханевич


                      (текст комментария доступен только участникам Мастер-группы)

  45. alenka89

    Добрый день! Вопрос по упорядочиванию результатов. В книге сказано, что в каждом справочнике или документе есть поля, по которым, по умолчанию, сортируются записи. Для справочника это код или наименование. А по какому полю в первую очередь будет производится сортировка: по коду или наименованию?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  46. tsugancov

    Добрый! Как в запросе удалить назначающие пробелы, типа функции СокрЛП(),
    Интересен такой запрос
    «ВЫБРАТЬ
    | АктВъезда.Ссылка,
    | АктВъезда.Автомобиль,
    | АктВъезда.ТСПринял
    |ИЗ
    | Документ.АктВъезда КАК АктВъезда
    |ГДЕ
    | АктВъезда.Автомобиль.Наименование ПОДОБНО «»% %»»»;
    Но в него попадают Авто вида » В225НК67″ и Авто вида «В225НК67 «, а необходимо только «В225 НК67» (пробел в середине)

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • tsugancov

        Понял, спасибо, но это не универсально. Буду тогда анализировать документы при записи, чтоб лишние пробелы не записывались в БД в принципе. А затем запросом искать ошибки и анализировать.

        • Василий Ханевич


          (текст комментария доступен только участникам Мастер-группы)

  47. Abacadabra

    Добрый день!
    Небольшое уточнение, в 15 задании «Пользователь устанавливает два параметра запроса – Дата начала и Дата окончания. …» У вас в решении не указано это.

    ГДЕ
        ПоступлениеТоваров.Дата МЕЖДУ &Дата1 И &Дата2
    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  48. Udar

    При решении задачи 18 запрос в консоли нормально сформировал новое представление, но сам справочник «Номенклатура» в режиме «Предприятие» не запускается. выдает ошибку: {Справочник.Номенклатура.МодульМенеджера(12)}: Преобразование значения к типу Число не может быть выполнено
    Представление = Данные.Артикул + «-» + Данные.Наименование;

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

      • Udar

        А как в модуле менеджера в процедурах представления наложить ограничение на поля групп? Создать экспортную процедуру в модуле объекта?

        • Ольга Шапкина

          Добрый день!
          Добавьте проверку стандартного реквизита «ЭтоГруппа» непосредственно при формировании строки Представления в модуле менеджера справочника Номенклатура.

  49. Udar

    Добрый день.
    При решении задачи №15 возник вопрос.
    В конструкторе запросов операторе «Выбор» функцию «Месяц» нужно обязательно ставить после оператора:

     ВЫБОР     МЕСЯЦ(ПоступлениеТоваров.Дата)

    При выставлении функции в условии

    КОГДА МЕСЯЦ(ПоступлениеТоваров.Дата)=2 ТОГДА "Февраль"
    КОГДА МЕСЯЦ(ПоступлениеТоваров.Дата)=3 ТОГДА "Март"


    выражение становится неправильным. Как определить, что можно ставить в условии, а что нет?

    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

  50. Udar

    Добрый день!
    Объясните пожалуйста, почему при выборе полей из табличной части через основной документ выводятся таблицы значений

    ВЫБРАТЬ
        ПоступлениеТоваров.Товары.(
            Номенклатура КАК Номенклатура,
            Сумма КАК Сумма
        ) КАК Товары
    ИЗ
        Документ.ПоступлениеТоваров КАК ПоступлениеТоваров

    И только если выбирать их напрямую из табличной части, поля появляются в результате запроса?

    ВЫБРАТЬ
        ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
        ПоступлениеТоваровТовары.Сумма КАК Сумма
    ИЗ
        Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
    • Василий Ханевич


      (текст комментария доступен только участникам Мастер-группы)

Комментарии закрыты