[РЕШЕНО] Вопрос по запросу РегистрСведений, левое соединение

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Kirill_NN, 11 сен 2016.

  1. TopicStarter Overlay
    Kirill_NN
    Offline

    Kirill_NN Опытный в 1С

    Регистрация:
    2 фев 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    Есть обработка ПечатьРКО, добавленная внешней печатной формой к выплате в кассу. (добавлена вложением)
    Стали жаловаться, что она не берет корректно данные о паспортах сотрудников - берет первый паспорт

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

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

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

    Вложения:

    Последнее редактирование модератором: 12 сен 2016
  2. Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    688
    Симпатии:
    8
    Баллы:
    29
    Потому, что запись в регистре сведений "СведенияОбОтветственныхЛицах" для каждой организации одна, поэтому там проблем нет. Было бы несколько записей, вот тогда бы началось.
  3. TopicStarter Overlay
    Kirill_NN
    Offline

    Kirill_NN Опытный в 1С

    Регистрация:
    2 фев 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    Давно ли одна?? директор ГлБух тоже могут меняться, ради интереса в тестовой поменял их, все равно запросом взялись те, что на этот день...
  4. Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    688
    Симпатии:
    8
    Баллы:
    29
    В тестовой когда менял, там изменилось количество записей в регистре сведений "СведенияОбОтветственныхЛицах"? Точно?
  5. TopicStarter Overlay
    Kirill_NN
    Offline

    Kirill_NN Опытный в 1С

    Регистрация:
    2 фев 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    Блин... сегодня пришел на работу, начал проверять на рабочей базе, у меня в файловом варианте - все работает
    В серверном - нет.
    Что не так?? помогите пож-та
  6. Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    688
    Симпатии:
    8
    Баллы:
    29
    Объясни ты толком, что сейчас не так?
  7. TopicStarter Overlay
    Kirill_NN
    Offline

    Kirill_NN Опытный в 1С

    Регистрация:
    2 фев 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    Да добавилась новая запись о директоре и бухгалтере
    В файловом варианте той же базы (выгрузка dt субботняя) паспорт берется тот который нужен (последний), в серверном берется первая запись о паспорте
  8. Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    688
    Симпатии:
    8
    Баллы:
    29
    Код:
      Запрос.Текст = "ВЫБРАТЬ
          |   СведенияОбОтветственныхЛицах.Руководитель,
          |   СведенияОбОтветственныхЛицах.ДолжностьРуководителя,
          |   Организации.НаименованиеПолное,
          |   Организации.КодПоОКПО,
          |   СведенияОбОтветственныхЛицах.ГлавныйБухгалтер
          |ИЗ
          |   Справочник.Организации КАК Организации
          |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОбОтветственныхЛицах.СрезПоследних(&Дата,) КАК СведенияОбОтветственныхЛицах
          |     ПО Организации.Ссылка = СведенияОбОтветственныхЛицах.Организация
          |ГДЕ
          |   Организации.Ссылка = &Организация";
    --- Объединение сообщений, 12 сен 2016 ---
    А первый запрос лучше изменить на

    Код:
            Запрос.Текст = "ВЫБРАТЬ
                           |    ДокументыФизическихЛиц.Серия КАК Серия,
                           |    ДокументыФизическихЛиц.Номер,
                           |    ДокументыФизическихЛиц.ДатаВыдачи,
                           |    ДокументыФизическихЛиц.КемВыдан,
                           |    ДокументыФизическихЛиц.КодПодразделения,
                           |    ДокументыФизическихЛиц.ВидДокумента
                           |ИЗ
                           |     РегистрСведений.ДокументыФизическихЛиц.СрезПоследних(&Дата,) КАК ДокументыФизическихЛиц
                           |ГДЕ
                           |    ДокументыФизическихЛиц.Физлицо = &ФизЛицо";
    
  9. TopicStarter Overlay
    Kirill_NN
    Offline

    Kirill_NN Опытный в 1С

    Регистрация:
    2 фев 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    В паспорте уже сделал:
    Код:
    Запрос.Текст = "ВЫБРАТЬ
          |   ДокументыФизическихЛиц.Серия КАК Серия,
          |   ДокументыФизическихЛиц.Номер,
          |   ДокументыФизическихЛиц.ДатаВыдачи,
          |   ДокументыФизическихЛиц.КемВыдан,
          |   ДокументыФизическихЛиц.КодПодразделения,
          |   ДокументыФизическихЛиц.ВидДокумента
          |ИЗ
          |   Справочник.ФизическиеЛица КАК ФизическиеЛица
          |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыФизическихЛиц.СрезПоследних(&Дата) КАК ДокументыФизическихЛиц
          |     ПО (ДокументыФизическихЛиц.Физлицо = ФизическиеЛица.Ссылка)
          |ГДЕ
          |   ФизическиеЛица.Ссылка = &ФизЛицо";
      
         Запрос.УстановитьПараметр("ФизЛицо", ФизЛицо);
         Запрос.УстановитьПараметр("Дата", ТекущаяДата());
    Но, почему то в файловом варианте - работает, в серверном нет.
    Скорее всего т.к. в файловом я сам-себе сервер ивсе берется корректно - ТекущаяДата. А в серверном почему то ТекущаяДата не берется что ли... или берется кривая...
    Последнее редактирование: 12 сен 2016
  10. Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    688
    Симпатии:
    8
    Баллы:
    29
    Нихрена не так.
    --- Объединение сообщений, 12 сен 2016 ---
    Либо в файловом только одна запись, либо просто случайно берется нужная.
  11. TopicStarter Overlay
    Kirill_NN
    Offline

    Kirill_NN Опытный в 1С

    Регистрация:
    2 фев 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    Просто случайно на нескольких сотрудниках, где я специально вводил новые паспорта в тестовой файловой?? как то не вериться...
    PS как выделять код в сообщении, кнопки "код" чего то не нашел
  12. Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    688
    Симпатии:
    8
    Баллы:
    29
    [​IMG]
    Kirill_NN нравится это.
  13. TopicStarter Overlay
    Kirill_NN
    Offline

    Kirill_NN Опытный в 1С

    Регистрация:
    2 фев 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    Народ! подскажите почему код в файловом варианте работает (выбирает паспорт на текущую дату), в клиент-серверном нет (берет первый паспорт)
    Код:
    Запрос.Текст = "ВЫБРАТЬ
          |   ДокументыФизическихЛиц.Серия КАК Серия,
          |   ДокументыФизическихЛиц.Номер,
          |   ДокументыФизическихЛиц.ДатаВыдачи,
          |   ДокументыФизическихЛиц.КемВыдан,
          |   ДокументыФизическихЛиц.КодПодразделения,
          |   ДокументыФизическихЛиц.ВидДокумента
          |ИЗ
          |   Справочник.ФизическиеЛица КАК ФизическиеЛица
          |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыФизическихЛиц.СрезПоследних(&Дата) КАК ДокументыФизическихЛиц
          |     ПО (ДокументыФизическихЛиц.Физлицо = ФизическиеЛица.Ссылка)
          |ГДЕ
          |   ФизическиеЛица.Ссылка = &ФизЛицо";
         Запрос.УстановитьПараметр("ФизЛицо", ФизЛицо);
         Запрос.УстановитьПараметр("Дата", ТекущаяДата());
  14. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    Если не использовать срез последних, то несколько строк в результатее? Периодичность у регистра какая?
  15. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    КонецДня(ТекущаяДата())
  16. TopicStarter Overlay
    Kirill_NN
    Offline

    Kirill_NN Опытный в 1С

    Регистрация:
    2 фев 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    В пределах дня
    Если не использовать срез последних, то первая запись и регистра (первый документ)
    Не работает, так же как и НачалоДня
  17. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Т.е. у вас одна запись всего ?
  18. TopicStarter Overlay
    Kirill_NN
    Offline

    Kirill_NN Опытный в 1С

    Регистрация:
    2 фев 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    Записи две, человек получал новый паспорт. В файловом варианте (развернута из выгрузки dt) - все идеально работает, берет СрезПоследних на дату, подсовываешь это внешнюю печатную форму в базу на сервере 1С, берет первую запись
  19. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    ТИИ сделайте
  20. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    Значение ТекущаяДата() какое в параметр передается?

Поделиться этой страницей