Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отчет о принятых на работу
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
igortimashenko
Добрый день. Помогите разобраться с запросами заполнения Отчета о принятых на работу.
По-порядку.
Конфигурация
"Зарплата и Управление Персоналом для Украины", редакция 2.1.
Разработка конфигурации: "ABBYY Ukraine", 2008-2011 (2.1.28.1)

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

    Запрос.УстановитьПараметр("ВидЗанятостиВнутрСовместитель", Перечисления.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство);

    РезультатЗапроса = Запрос.Выполнить();
    
    Если НЕ РезультатЗапроса.Пустой() Тогда
        
        Результат = РезультатЗапроса.Выбрать();
        
        Пока Результат.Следующий() Цикл
            Если КвоСтрок > 0 Тогда
                ВставитьДополнительнуюСтроку(мИдГруппы1);         
            КонецЕсли;
            КвоСтрок = КвоСтрок + 1;
            
            ОбластьЯчейки = ПолучитьОбластьМногострочногоРаздела(мИдГруппы1, 1);
            ОбластьЯчейки.Значение = КвоСтрок;                
            
            ОбластьЯчейки = ПолучитьОбластьМногострочногоРаздела(мИдГруппы1, 2);      
            ОбластьЯчейки.Значение = Результат.ФИО;                
            
            ОбластьЯчейки = ПолучитьОбластьМногострочногоРаздела(мИдГруппы1, 3);
            ОбластьЯчейки.Значение = Результат.ИНН;
            
            
            ОбластьЯчейки = ПолучитьОбластьМногострочногоРаздела(мИдГруппы1, 4);
            ОбластьЯчейки.Значение = "";
            Если  Результат.Адрес <> NULL Тогда
                ОбластьЯчейки.Значение = Результат.Адрес;
            КонецЕсли;
            
            ОбластьЯчейки = ПолучитьОбластьМногострочногоРаздела(мИдГруппы1, 5);
            ОбластьЯчейки.Значение = Результат.Должность;
            
            ОбластьЯчейки = ПолучитьОбластьМногострочногоРаздела(мИдГруппы1, 6);
            ОбластьЯчейки.Значение = Результат.КодДолжности;
            
            ОбластьЯчейки = ПолучитьОбластьМногострочногоРаздела(мИдГруппы1, 7);
            ОбластьЯчейки.Значение = "№ " + ОбщегоНазначения.ПолучитьНомерНаПечать(Результат.Приказ) + " від";
            
            ОбластьЯчейки = ПолучитьОбластьМногострочногоРаздела(мИдГруппы1, 8);
            ОбластьЯчейки.Значение = Результат.ДатаПриказа;
            
            ОбластьЯчейки = ПолучитьОбластьМногострочногоРаздела(мИдГруппы1, 9);
            ОбластьЯчейки.Значение = Результат.ДатаНачала;
            
        КонецЦикла;  
        
    КонецЕсли;
    
    ОбновитьСтруктуруМногострочныхРазделов();    
    
    Расчет();
    
    Модифицированность = Истина;


При нажатии на кнопку таблицу заполняет, но в колонке "Номер та дата наказу або трудового договору, контракту про прийняття на роботу працівника"
Ставит Код из Личные данные физического лица, а не номер Договора из Сотрудники организации.
Второе - я не пойму, почему на некоторых сотрудников не тянет "Зареєстроване місце проживання особи(Автономна Республіка Крим, м. Київ, м. Севастополь, область, район, населений пункт, район у місті)"
Не на всех, а на некоторых, при этом в реквизитах сотрудников в личных карточках все заполнено на всех, но вот на некоторых нормально подтягивает, на некоторых нет.

Помогите пролить свет в данном вопросе, т.к. программистов у нас нет, и обратиться больше не к кому, а руководство требует.
Заранее спасибо.

rpodgornyy
Если запрос вставлен из типовой конфигурации, вряд ли в нём ошибка. После чего стало так работать? Раньше было нормально?
igortimashenko
никто конкретного ответа не дал, около 1-1,5 года назад работало. Я в этой конторе работаю полгода, концов когда пришел небыло, я так понял хорошо, что мой предшественник вообще серваки не форматнул как мне сказали, но не важно. Я когда пришел платформа была 8.2.13.219 и конфиг 23ий
платформу обновил, конфигурацию постепенно до 28 тоже

вопросы начались неделю назад, конфигурацию обновлял в 10тых числах февраля, вот и пытаюсь теперь понять - куда копать
rpodgornyy
Если не ошибаюсь, крайняя конфигурация 29
igortimashenko
да, но найти ее не могу
rpodgornyy
Хм... на 29-й демке заполняется всё корректно...
igortimashenko
вот и я грешу на конфиг, я так понял до этого приема на работу небыло, а сейчас начался. вот и возник вопрос, но где взять 29ю?
rpodgornyy
Подписка на ИТС
alex040269
Цитата(igortimashenko @ 10.07.13, 13:58) необходимо зарегистрироваться для просмотра ссылки
| ФИОФизЛиц.Фамилия + "" "" + ФИОФизЛиц.Имя + "" "" + ФИОФизЛиц.Отчество КАК ФИО,



Цитата(igortimashenko @ 10.07.13, 13:58) необходимо зарегистрироваться для просмотра ссылки
| РаботникиОрганизаций.
| РаботникиОрганизаций.Регистратор.Ссылка КАК Приказ,


здесь, наверное, очепятка

Цитата(rpodgornyy @ 10.07.13, 16:47) необходимо зарегистрироваться для просмотра ссылки
Если запрос вставлен из типовой конфигурации, вряд ли в нём ошибка. После чего стало так работать? Раньше было нормально?

Запрос не из типовой.
igortimashenko
Цитата(alex040269 @ 10.07.13, 17:51) необходимо зарегистрироваться для просмотра ссылки
Цитата(igortimashenko @ 10.07.13, 13:58)
| РаботникиОрганизаций.
| РаботникиОрганизаций.Регистратор.Ссылка КАК Приказ,

здесь, наверное, очепятка


простите, но где?
rpodgornyy
Цитата(alex040269 @ 10.07.13, 17:51) необходимо зарегистрироваться для просмотра ссылки
Запрос не из типовой.


Да нет, специально открыл, сравнил - из типовой...
igortimashenko
типовая, врядли там бы была опечатка, но спорить не буду.
По сути можно ли заменить запрос который берет номер Приказа и заменить на запрос который бы тынул номер Договора из личной
alex040269
Цитата(igortimashenko @ 10.07.13, 17:55) необходимо зарегистрироваться для просмотра ссылки
простите, но где?


| РаботникиОрганизаций. //здесь что-то должно быть

у меня запрос не открывается в конструкторе.
rpodgornyy
Этой строчки вообще не должно быть.
asd34
В приведенном коде ошибок не вижу (кроме той строки в запросе, о которой сказали выше). Сравните с типовым отчетом, может у Вас в другом месте заполняются значения номера приказа и дата.
Цитата(igortimashenko @ 10.07.13, 12:58) необходимо зарегистрироваться для просмотра ссылки
Второе - я не пойму, почему на некоторых сотрудников не тянет "Зареєстроване місце проживання особи(Автономна Республіка Крим, м. Київ, м. Севастополь, область, район, населений пункт, район у місті)"

Справочник Физлица - Адрес по прописке физлица должен быть заполнен.
reneval
                   //|    РаботникиОрганизаций.Регистратор.Ссылка КАК Приказ,
                   //|    РаботникиОрганизаций.Регистратор.Дата КАК ДатаПриказа,
                   |    РаботникиОрганизаций.Сотрудник.ДатаДоговора   КАК ДатаПриказа,
                   |    РаботникиОрганизаций.Сотрудник.НомерДоговора  КАК Приказ,


        //    ОбластьЯчейки.Значение = "№ " + ОбщегоНазначения.ПолучитьНомерНаПечать(Результат.Приказ) + " від";
            ОбластьЯчейки.Значение = "№ " + Результат.Приказ + " від";


О необходимости вносить изменения и подключать как внешний отчет, думаю, не стоит.

Цитата(igortimashenko @ 10.07.13, 13:58) необходимо зарегистрироваться для просмотра ссылки
Второе - я не пойму, почему на некоторых сотрудников не тянет "Зареєстроване місце проживання особи(Автономна Республіка Крим, м. Київ, м. Севастополь, область, район, населений пункт, район у місті)"


"Адрес по прописке физ. лица" нужно заполнить
asd34
Цитата(igortimashenko @ 10.07.13, 17:02) необходимо зарегистрироваться для просмотра ссылки
можно ли заменить запрос который берет номер Приказа и заменить на запрос который бы тынул номер Договора из личной

Я бы не советовал - данные трудового договора могут быть и не заполнены, а вот документ приема на работу есть всегда. Ищите, почему не заполняются данные документа о приеме на работу.
igortimashenko
Цитата(reneval @ 10.07.13, 19:04) необходимо зарегистрироваться для просмотра ссылки
"Адрес по прописке физ. лица" нужно заполнить


В том то и дело, что заполнено, некоторые сотрудники нормально заполняются в отчете, т.е. есть адрес, все как положено, некоторые нет. Я сначала пытался уже найти отличия в мелочах, проверял, может проблемы были у тех кто работал ранее и в списке имеется 2 или 3 записи по сотруднику - нет же, не важно сколько и когда были заведены данные на сотрудника и в каком количестве. Не знаю, честно, единственное предположение что где то, что то не так в конгфиге 28ом, буду найти 29ый. Просто даже найти концов/документов по 1С не удается - никто ничего не знает.


На счет правки кода - попробую, отпишу, большое спасибо
reneval
Релиз - не при делах.

Операции - Регистры сведений - Контактная информация.
Отбор по тому, по кому заполняется и по кому не заполняется. Скорее всего разницу будет видно.


Если отличий действительно нет, запустить тестирование и исправление.
Для серверного варианта - попробовать переиндекировать таблицы СУБД.


igortimashenko
Ребята, Вы чудо!!!! я действительно не придал значения такому отличию, что Адрес Прописки и Адрес Проживания - абсолютно разные в понимании 1С... Еще раз огромное спасибо! Это то что касается некоторых "нетянущихся адресов".

Чуть позже, когда из базы все отвалять - проверю на счет номера Договора.

Вы действительно СИЛА!!! СПАСИБО!!!
Vofka
igortimashenko, жмите палец тем, кто помог.
igortimashenko
Цитата(reneval @ 10.07.13, 19:04) необходимо зарегистрироваться для просмотра ссылки
                   //|    РаботникиОрганизаций.Регистратор.Ссылка КАК Приказ,
                   //|    РаботникиОрганизаций.Регистратор.Дата КАК ДатаПриказа,
                   |    РаботникиОрганизаций.Сотрудник.ДатаДоговора   КАК ДатаПриказа,
                   |    РаботникиОрганизаций.Сотрудник.НомерДоговора  КАК Приказ,


        //    ОбластьЯчейки.Значение = "№ " + ОбщегоНазначения.ПолучитьНомерНаПечать(Результат.Приказ) + " від";
            ОбластьЯчейки.Значение = "№ " + Результат.Приказ + " від";


О необходимости вносить изменения и подключать как внешний отчет, думаю, не стоит.



"Адрес по прописке физ. лица" нужно заполнить


так, проба изменить данные строки - выдает ошибку
{Отчет.РегламентированныйОтчет5ПН.Форма.ФормаОтчета2011.Форма(1161)}: Поле объекта не обнаружено (Договор)
ОбластьЯчейки.Значение = "№ " + ОбщегоНазначения.ПолучитьНомерНаПечать(Результат.Договор) + " від";
alex040269
Цитата(igortimashenko @ 15.07.13, 17:03) необходимо зарегистрироваться для просмотра ссылки
так, проба изменить данные строки - выдает ошибку
{Отчет.РегламентированныйОтчет5ПН.Форма.ФормаОтчета2011.Форма(1161)}: Поле объекта не обнаружено (Договор)
ОбластьЯчейки.Значение = "№ " + ОбщегоНазначения.ПолучитьНомерНаПечать(Результат.Договор) + " від";

ничего удивительного ибо в запросе описания полей оканчивающихся на КАК Договор или .Договор я не вижу.
igortimashenko
Цитата(alex040269 @ 15.07.13, 17:08) необходимо зарегистрироваться для просмотра ссылки
ничего удивительного ибо в запросе описания полей оканчивающихся на КАК Договор или .Договор я не вижу.


недосмотрел, изменил, пробую так
 |    РаботникиОрганизаций.Сотрудник.НомерДоговора.Ссылка КАК Договор,
                   |    РаботникиОрганизаций.Сотрудник.ДатаДоговора КАК ДатаДоговора,


естественно пишет {Отчет.РегламентированныйОтчет5ПН.Форма.ФормаОтчета2011.Форма(1126)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
{(7, 47)}: Поле не найдено "РаботникиОрганизаций.Сотрудник.НомерДоговора.Ссылка"
РаботникиОрганизаций.Сотрудник.НомерДоговора.<<?>>Ссылка КАК Договор,



при попытке сделать запрос вида
       |    РаботникиОрганизаций.Сотрудник.НомерДоговора КАК Договор,
                   |    РаботникиОрганизаций.Сотрудник.ДатаДоговора КАК ДатаДоговора,


выдает {ОбщийМодуль.ОбщегоНазначения.Модуль(329)}: Значение не является значением объектного типа (Номер)
Номер = СокрЛП(Документ.Номер);
тоже понимаю, т.к. поле НомерДоговора - строка, просто кощмар, я понимаю что лезу не туда, скажите где можно прочитать по синтаксису запросов.... why.gif

на запрос
  |    РаботникиОрганизаций.Сотрудник.НомерДоговора КАК Приказ,
       |    РаботникиОрганизаций.Сотрудник.ДатаДоговора КАК ДатаПриказа,


выдает ошибку

{ОбщийМодуль.ОбщегоНазначения.Модуль(329)}: Значение не является значением объектного типа (Номер)
Номер = СокрЛП(Документ.Номер);

этого я не знаю, как и где искать..
reneval
Цитата(igortimashenko @ 10.07.13, 19:04) необходимо зарегистрироваться для просмотра ссылки
        //    ОбластьЯчейки.Значение = "№ " + ОбщегоНазначения.ПолучитьНомерНаПечать(Результат.Приказ) + " від";
            ОбластьЯчейки.Значение = "№ " + Результат.Приказ + " від";


faceoff.gif
igortimashenko
Цитата(reneval @ 15.07.13, 18:34) необходимо зарегистрироваться для просмотра ссылки
faceoff.gif


Да, простите, мозги где то не в том месте были.. Все работает. Еще раз спасибо Вам. Вы чудо!!!!!!!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.