7.7 Немогу добавить адрес

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

  1. TopicStarter Overlay
    Raideres
    Offline

    Raideres Опытный в 1С

    Регистрация:
    9 фев 2016
    Сообщения:
    200
    Симпатии:
    0
    Баллы:
    26
    Код:
    Перем Запрос, ТекстЗапроса, Таб;
        //Создание объекта типа Запрос
        Запрос = СоздатьОбъект("Запрос");
        ТекстЗапроса =
        "//{{ЗАПРОС(Сформировать)
        |Период с ВыбНачПериода по ВыбКонПериода;
        |ОбрабатыватьДокументы все;
        |Обрабатывать НеПомеченныеНаУдаление;
        |Без итогов;
        |Наименование          = Документ.ПриказОПриемеНаРаботу.Сотрудник.Наименование, Документ.ПриказОбУвольнении.Сотрудник.Наименование;
        |Должность             = Документ.ПриказОПриемеНаРаботу.Сотрудник.Должность, Документ.ПриказОбУвольнении.Сотрудник.Должность;
        |СерияПаспорт          = Документ.ПриказОПриемеНаРаботу.Сотрудник.ДокументСерия, Документ.ПриказОбУвольнении.Сотрудник.ДокументСерия;   
        |НомерПаспорт          = Документ.ПриказОПриемеНаРаботу.Сотрудник.ДокументНомер, Документ.ПриказОбУвольнении.Сотрудник.ДокументНомер;
        |ВыданПаспорт          = Документ.ПриказОПриемеНаРаботу.Сотрудник.ДокументКемВыдан, Документ.ПриказОбУвольнении.Сотрудник.ДокументКемВыдан;
        |ДатаВыдачиПаспорта    = Документ.ПриказОПриемеНаРаботу.Сотрудник.ДокументДатаВыдачи, Документ.ПриказОбУвольнении.Сотрудник.ДокументДатаВыдачи;
        |ДатаПриказаУвальнение = Документ.ПриказОбУвольнении.ДатаПриказа;
        |ДатаПриказаПрием = Документ.ПриказОПриемеНаРаботу.ДатаПриказа;
        |Группировка Наименование;
        |"//}}ЗАПРОС
        ;
        // Если ошибка в запросе, то выход из процедуры
        Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
            Возврат;
        КонецЕсли;
        // Подготовка к заполнению выходных форм данными запроса
        Таб = СоздатьОбъект("Таблица");
        Таб.ИсходнаяТаблица("Сформировать");
        // Заполнение полей "Заголовок"
        Таб.ВывестиСекцию("Заголовок");
        Состояние("Заполнение выходной таблицы...");
        Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
        Пока Запрос.Группировка() = 1 Цикл
           
            Таб.ВывестиСекцию("Сформировать");
        КонецЦикла;
        // Вывод заполненной формы
        Таб.ТолькоПросмотр(1);
        Таб.Показать("Сформировать", "");
    Добрый день немогу достать Адрес пишит нельзя переменные различных типов

    Документ.ПриказОПриемеНаРаботу.Сотрудник.АдресПрописка
  2. Sherry Djeanna
    Offline

    Sherry Djeanna Опытный в 1С

    Регистрация:
    12 июл 2015
    Сообщения:
    70
    Симпатии:
    0
    Баллы:
    26
    А как вы его пытаетесь достать?
    1. АдресПрописка - неорграниченной длины. Если в Запросе, то он с такими переменными не работает.
    Как вариант. В запрос добавить

    |Сотрудник = Документ.ПриказОПриемеНаРаботу.Сотрудник, Документ.ПриказОбУвольнении.Сотрудник;

    При обработке результата запроса
    Адрес = СокрЛП(Запрос.Сотрудник.АдресПрописка);
  3. TopicStarter Overlay
    Raideres
    Offline

    Raideres Опытный в 1С

    Регистрация:
    9 фев 2016
    Сообщения:
    200
    Симпатии:
    0
    Баллы:
    26
    спс уже сделал но немного подругому
    Код:
    Пока Запрос.Группировка() = 1 Цикл   
            Наимен = Запрос.Наименование;
            СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
            если СпрСотр.НайтиПоНаименованию(Наимен) =1 Тогда
             АдресПрописка= СпрСотр.АдресПрописка;
            КонецЕсли;
            Таб.ВывестиСекцию("Сформировать");
        КонецЦикла;
  4. Sherry Djeanna
    Offline

    Sherry Djeanna Опытный в 1С

    Регистрация:
    12 июл 2015
    Сообщения:
    70
    Симпатии:
    0
    Баллы:
    26
    несколько витиевато ))) но если Вам так удобнее - Ваш код, Вам и решать )
    но смотрите, вы оставляете Адрес все той же безграничной длины. Где-нибудь может снова выскочить ошибка.
  5. TopicStarter Overlay
    Raideres
    Offline

    Raideres Опытный в 1С

    Регистрация:
    9 фев 2016
    Сообщения:
    200
    Симпатии:
    0
    Баллы:
    26
    Наимен = Запрос.Наименование;
    СпрСотр2 = СоздатьОбъект("Документ.ПриказОбУвольнении");
    если СпрСотр2.НайтиПоНаименованию(Наимен) =1 Тогда //тут вот ошибка поиск хз как сделать в 7ке
    ДатаПриказаУвальнение = СпрСотр2.ДатаПриказа;
    КонецЕсли;
  6. TopicStarter Overlay
    Raideres
    Offline

    Raideres Опытный в 1С

    Регистрация:
    9 фев 2016
    Сообщения:
    200
    Симпатии:
    0
    Баллы:
    26
    Код:
    Процедура Сформировать()
        Перем Запрос, ТекстЗапроса, Таб,Наимен,СпрСотр,справочник;
     
        Если ПроверкаПериода() = 0 Тогда
            Возврат;
        КонецЕсли;
     
        //Создание объекта типа Запрос
        Запрос = СоздатьОбъект("Запрос");
        ТекстЗапроса =
        "//{{ЗАПРОС(Сформировать)
        |Период с ВыбНачПериода по ВыбКонПериода;
        |ОбрабатыватьДокументы все;
        |Обрабатывать НеПомеченныеНаУдаление;
        |Без итогов;
        |Наименование          = Документ.ПриказОПриемеНаРаботу.Сотрудник.Наименование;
        |Должность             = Документ.ПриказОПриемеНаРаботу.Сотрудник.Должность;
        |СерияПаспорт          = Документ.ПриказОПриемеНаРаботу.Сотрудник.ДокументСерия; 
        |НомерПаспорт          = Документ.ПриказОПриемеНаРаботу.Сотрудник.ДокументНомер;
        |ВыданПаспорт          = Документ.ПриказОПриемеНаРаботу.Сотрудник.ДокументКемВыдан;
        |ДатаВыдачиПаспорта    = Документ.ПриказОПриемеНаРаботу.Сотрудник.ДокументДатаВыдачи;
        |ДатаПриказаПрием      = Документ.ПриказОПриемеНаРаботу.ДатаПриказа;
        |Группировка Наименование;
        |"//}}ЗАПРОС
        ;
        // Если ошибка в запросе, то выход из процедуры
        Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
            Возврат;
        КонецЕсли;
     
     
     
        Запрос2 = СоздатьОбъект("Запрос");
        ТекстЗапроса =
        "//{{ЗАПРОС(Сформировать)
        |Период с ВыбНачПериода по ВыбКонПериода;
        |ОбрабатыватьДокументы все;
        |Обрабатывать НеПомеченныеНаУдаление;
        |Без итогов;
        |Наименование          = Документ.ПриказОбУвольнении.Сотрудник.Наименование;
        |ДатаПриказаУвальнение = Документ.ПриказОбУвольнении.ДатаПриказа;
        |Группировка Наименование;
        |"//}}ЗАПРОС
        ;
        // Если ошибка в запросе, то выход из процедуры
        Если Запрос2.Выполнить(ТекстЗапроса) = 0 Тогда
            Возврат;
        КонецЕсли;
     
     
     
     
        // Подготовка к заполнению выходных форм данными запроса
        Таб = СоздатьОбъект("Таблица");
        Таб.ИсходнаяТаблица("Сформировать");
        // Заполнение полей "Заголовок"
        Таб.ВывестиСекцию("Заголовок");
        Состояние("Заполнение выходной таблицы...");
        Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
     
     
     
        Пока Запрос.Группировка() = 1 Цикл 
        Наимен = Запрос.Наименование;
    
        СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
          если СпрСотр.НайтиПоНаименованию(Наимен) =1 Тогда
             АдресПрописка          = СпрСотр.АдресПрописка;
         КонецЕсли;
    
      
       
    СпрСотр2 = СоздатьОбъект("Документ.ПриказОбУвольнении");
    если СпрСотр2.НайтиПоНаименованию(Наимен) =1 Тогда //тут вот ошибка поиск хз как сделать в 7ке
    ДатаПриказаУвальнение = СпрСотр2.ДатаПриказа;
    КонецЕсли;
         
            Таб.ВывестиСекцию("Сформировать");
        КонецЦикла;
        // Вывод заполненной формы
        Таб.ТолькоПросмотр(1);
        таб.Защита(1);
        Таб.Показать("Сформировать", "");
    КонецПроцедуры 

    немогу вытащить теперь дату приказа об увальнение ни как
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Запрос2 выгрузи в ТаблицуЗначений и ищи...
    Хотя можешь объединить запросы в один

    |Наименование = Документ.ПриказОПриемеНаРаботу.Сотрудник.Наименование,Наименование = Документ.ПриказОбУвольнении.Сотрудник.Наименование;
    |ДатаПриказаУвальнение = Документ.ПриказОбУвольнении.ДатаПриказа;
    |Должность = Документ.ПриказОПриемеНаРаботу.Сотрудник.Должность;
    .....

    ;

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