| 
    
        
     
     | 
    
  | 
ЗУП 3.1 Заполнить прием на работу по штатному расписанию | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        breezee    
     01.03.19 
            ✎
    05:34 
 | 
         
        Коллеги, добрый день!
 
        Подскажите, пожалуйста: Имеем ЗУП 3.1 Есть задача - программно создавать прием на работу и заполнять по штатному расписанию. Посмотрел при изменении штатного расписания - там кошмар, все функции привязаны к контексту формы. Нет каких-то процедур общего назначения, которые это делают? Хочу красивое решение в пару строк, которое при обновлении конфы не сильно сломается.  | 
|||
| 
    1
    
        SleepyHead    
     гуру 
    01.03.19 
            ✎
    05:38 
 | 
         
        (0) Подсовывай вместо формы структуру с аналогичными полями.     
         | 
|||
| 
    2
    
        ДенисЧ    
     01.03.19 
            ✎
    05:43 
 | 
         
        (0) "Хочу красивое решение в пару строк" и ЗУП - тут нужен ПКВ...     
         | 
|||
| 
    3
    
        breezee    
     01.03.19 
            ✎
    05:44 
 | 
         
        (1) Ну так и буду делать, похоже( Но почему такая завязка на форму то? Кошмар прям     
         | 
|||
| 
    4
    
        SleepyHead    
     гуру 
    01.03.19 
            ✎
    05:45 
 | 
         
        (3) Элементарно, Ватсон! Вы пытаетесь научить робота рулить рулевым колесом, а не передавать управляюший сигнал сразу исполнительному механизму поворотом.     
         | 
|||
| 
    5
    
        breezee    
     01.03.19 
            ✎
    06:21 
 | 
         
        (4) Не понимаю(     
         | 
|||
| 
    6
    
        SleepyHead    
     гуру 
    01.03.19 
            ✎
    06:41 
 | 
         
        (5) Ну вот я переносил данные полтора года назад из самописной 1с77 через КД2 в ЗУП 3.1 и ничего мне не мешало связать приемы на работу со штатным расписанием без всяких танцев вокруг форм.
 
        Изучай структуру конфы, и все получится.  | 
|||
| 
    7
    
        breezee    
     01.03.19 
            ✎
    07:08 
 | 
         
        (6) Да не в этом вопрос. Вопрос в том, сколько на это уйдет времени и почему разработчики типовых не сделали получения данных удобно. Напрашивается очевидная функция:
 
        Передаешь штатное расписание, возвращается структура параметров, структурой заполняется форма. На кой черт туда форму передавать и заполнять её в общих модулях. Это можно же было сделать после получения всех параметров по штатному расписанию. Вот получили эту структуру и заполнили ей форму. Извините, крик души  | 
|||
| 
    8
    
        SleepyHead    
     гуру 
    01.03.19 
            ✎
    07:12 
 | 
         
        (7) Потому что все рассчитано на ввод данных оператором. Не думаю, что разработчики предполагали, что кто-то будет заполнять эти данные программно. А ты пытаешься использовать этот функционал для автоматического заполнения, о чем я и написал в (4).
 
        Насчет сколько уйдет времени - все зависит от масштабов переноса. Вот у меня было две большие базы в ЗУП ГУ (госучреждение), и около 200 баз довольно мелких в обычной ЗУП, и мне было выгодно написать этот перенос, хотя разработка и отладка заняла приличное время, заодно изучил структуру ЗУП. Если у тебя достаточно небольшой перенос, тогда да, реально напрягает.  | 
|||
| 
    9
    
        Провинциальный 1сник    
     01.03.19 
            ✎
    07:19 
 | 
         
        (7) Совершенно верно. Я тоже с этим сталкивался в ЗУПе. Любят там общие модули для обработки контекста формы документа создавать. Причем, в этом же общем модуле делают получение объекта формы и работают далее с ним. А почему бы не передать сразу объект в функцию? А вот чтобы зае..лись все!     
         | 
|||
| 
    10
    
        Провинциальный 1сник    
     01.03.19 
            ✎
    07:23 
 | 
         
        (6) "Изучай структуру конфы, и все получится."
 
        Вот тут Куда движется архитектура ЗУП 3 утверждают, что это неправильный подход. "Тебе не надо знать, что где в каких регистрах хранится, тебе надо знать процедуры и функции, которые вернут тебе эти данные."  | 
|||
| 
    11
    
        SleepyHead    
     гуру 
    01.03.19 
            ✎
    07:28 
 | 
         
        (10) В моем комментарии речь идет о переносах данных, см 8, а у автора задача - не чтение данных средствами общих модулей, а заполнение данных. Так что ссылка не вполне в тему. Считаю, что если ты заполняешь данные  - знание актуальной структуры на момент заполнения просто необходимо.     
         | 
|||
| 
    12
    
        breezee    
     01.03.19 
            ✎
    07:32 
 | 
         
        (8) (9) (10) Понял)
 
        Блин, было бы разово, все ок. Заказчик хочет вести по 2 организациям учет, и прием сотрудника должен копироваться и заполняться по штатному расписанию. Ладно, буду мучаться) Спасибо, разрабы типовых  | 
|||
| 
    13
    
        SleepyHead    
     гуру 
    01.03.19 
            ✎
    07:33 
 | 
         
        (9) Ну как сказать, я вот решал задачу автоматического создания заполнения ведомостей на выплату, и автоматического же заполнения НДФЛ в них. Если копнуть все 10-12 вызовов общих модулей недостаточно глубоко и примерно на пятом упереться в работу с формой, то да, мложно и задолбаться. Но если копнуть еще дальше, идет работа непосредственно с табличной частью объекта и сделано достаточно удобно.
 
        Сократив все эти ненужные вызовы, передаю в общий модуль массив ссылок на физических лиц, в версиях по 3.1.7 включительно это выглядело примерно так: ВзаиморасчетыССотрудникамиРасширенный.ВедомостьОбновитьНДФЛ(Док, ФизЛица); Начиная с версии 3.1.8 стало немного сложнее и этот функционал перенесли в модуль менеджера объекта и стало примерно так: Модуль = ОбщегоНазначения.ОбщийМодуль("ВедомостьНаВыплатуЗарплаты"); ТНДФЛ = Модуль.НалогиКУдержанию( ТЗП, // табличная часть зарплаты ПараметрыЗаполнения.ОписаниеОперации, ПараметрыЗаполнения.ПараметрыРасчетаНДФЛ, ПараметрыЗаполнения.Финансирование, Док.Ссылка); Док.УстановитьНДФЛ(ТНДФЛ);  | 
|||
| 
    14
    
        SleepyHead    
     гуру 
    01.03.19 
            ✎
    07:33 
 | 
         
        +13 вывод -  просто недостаточно глубоко копают, решение может быть найдено всегда.     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |