Вход | Регистрация


1С:Предприятие ::

Метки: 

ЗУП3. Есть ли возможность быстро и просто начислить зарплату программно?

Я
   DTX 4th
 
11.07.18 - 18:42
2. Мне не нравится код ЗУП383% (5)
4. Свой вариант17% (1)
1. Мне нравится код ЗУП30% (0)
3. Явно лучше чем ЗУП2, но до идеала далеко0% (0)
Всего мнений: 6

Вроде 1С старается структурировать свой, да и редакция уже третья по счету, но простого способа программно начислить зарплату я не нашёл. Ожидал увидеть что-нибудь вроде
ЗаполнитьСтандартнымиЗначениями(Док);
НачислитьЗарплату(Док);
[1c]

В коде можно найти место вызова длительной операции начисления, туда улетают параметры, которые рядом и заполняются примерно вот так:
[1c]
    СтруктураПараметров = РасчетЗарплатыРасширенныйКлиентСервер.ПараметрыПолученияДанныхЗаполненияДокумента();
    СтруктураПараметров.ОписаниеДокумента = ОписаниеДокумента(ЭтотОбъект);// Функция неэкспортная. Что с ней делать - непонятно

    СтруктураПараметров.Организация = Объект.Организация;
    СтруктураПараметров.ДокументСсылка = Объект.Ссылка;

В итоге натыкаемся на ОписаниеДокумента(ЭтотОбъект) без Экспорт, и дальше дороги не видно.

Это норма? Или я что-то делаю не так?
 
  Рекламное место пустует
   МимохожийОднако
 
1 - 11.07.18 - 18:49
Что-то делаешь не так. Традиционное: зачем?
   DTX 4th
 
2 - 11.07.18 - 18:52
(1) Да масса вариантов может быть. От "начислить зарплату, не заходя в базу", до "хочу обработку, которая начислит зарплату, проведёт синхронизацию, создаст платежки и всё-всё-всё одной кнопкой".
   APXi
 
3 - 11.07.18 - 19:15
(0) геморойно там программно это делать.

2. Мне не нравится код ЗУП3
   mmmarat
 
4 - 11.07.18 - 20:02
(0) смотрите примеры использования обработки "менеджер расчёта зарплаты". Если разобраться, то там все просто.
   DTX 4th
 
5 - 12.07.18 - 11:26
(4) Обработку нашёл. Примеры - нет. Где их можно посмотреть?
   DTX 4th
 
6 - 12.07.18 - 14:42
Бесит.

2. Мне не нравится код ЗУП3
   Skylark
 
7 - 12.07.18 - 14:59
ИМХО в типовые 1С напустили "тру-программеров".
Теперь вместо написания бизнес-логики на макроязыке полноценное забубенное программирование, которое могут осилить не только лишь все.
   Малыш Джон
 
8 - 12.07.18 - 15:32
(7) "ходют и ходют, топчуть и топчуть..." )))

"тру-программеры" не при чем.
захотелось универсализации и модульности? получайте "утяжеление" кода в нагрузку.

(0) смотря что значит быстро и просто...
пол-ЗУПа(а может и больше) как раз и занимается тем, что создает документ "Начисление ЗП". Если бы можно было обойтись пятью строчками - ну наверное бы так и сделали?
   jsmith82
 
9 - 12.07.18 - 15:35
Используй команды формы
   ptiz
 
10 - 12.07.18 - 15:35
(0) Возможность программного создания документов в ЗУП 3 максимально усложнена.

2. Мне не нравится код ЗУП3
 
 
   El_Duke
 
11 - 12.07.18 - 15:40
(0) В комбинации из 3 хотелок "быстро", "просто" и "правильно" можно одновременно реализовать только любые 2 из них
   DTX 4th
 
12 - 12.07.18 - 15:42
>Если бы можно было обойтись пятью строчками - ну наверное бы так и сделали?
(8) Руками это делается в два действия. Открыть форму, нажать заполнить. Как минимум, это можно было позволить делать программно, всего лишь добавив везде "Экспорт".

(9) Можно как-то форме отправить неэкспортную команду?
Про ComConnector даже спрашивать не буду..

(11) Какие их этих хотелок примеными к коду ЗУПа? xd
Разве что "быстро", но это не точно.
   Вафель
 
13 - 12.07.18 - 15:44
(12) сделай расширение и добавь экспорт
   Вафель
 
14 - 12.07.18 - 15:44
верене так
МояОбертка_Функция() Экспорт
  Функция();

   Вафель
 
15 - 12.07.18 - 15:45
зуп конечно очень страдает расчетами через форму
   DTX 4th
 
16 - 12.07.18 - 15:46
(13) Не вариант. Баз много, все типовые. Обновляются батником.
   mmmarat
 
17 - 12.07.18 - 15:48
(5)
Пример в РасчетЗарплатыРасширенный.ДанныеДляЗаполненияТаблицДокумента
В строке МенеджерРасчета.РассчитатьЗарплату(); запускается расчет. 

В МенеджерРасчета.Зарплата итоги расчета.
   Вафель
 
18 - 12.07.18 - 15:48
(16) но это же расширение
   Akela has missed
 
19 - 12.07.18 - 16:12
МенеджерРасчета = РасчетЗарплатыРасширенный.СоздатьМенеджерРасчета(Объект.ПериодРегистрации, Объект.Организация);
ЗаполнитьНастройкиМенеджераРасчета(МенеджерРасчета, ПериодРасчетаЗарплаты);
    
ЗаполнитьНачисления(МенеджерРасчета, ПериодРасчетаЗарплаты);
ЗаполнитьПерерасчеты(МенеджерРасчета);
ЗаполнитьУдержания(МенеджерРасчета);
ЗаполнитьПараметрыРасчетаПособияПоНетрудоспособности(МенеджерРасчета);
    
МенеджерРасчета.РассчитатьЗарплату();
    
РасчетЗарплатыВДанныеФормы(МенеджерРасчета.Зарплата);

Задумано и выглядит круто, а на деле всё уныло. Взять хотябы этот код из больничного. Задача просто его рассчитать.
Нормальный человек, как тут сказали "тру-программер", сделал бы универсальный интерфейс одним-двумя методами. А здесь минимум 8!, да еще и с участием контекста формы.

2. Мне не нравится код ЗУП3
   APXi
 
20 - 12.07.18 - 16:42
(7) Что то наверное наоборот, нормальных программеров выкинули.

2. Мне не нравится код ЗУП3
   Skylark
 
21 - 12.07.18 - 17:02
(19) поэтому "тру-программер" и в кавычках
   Alexandr_U1982
 
22 - 12.07.18 - 17:40
(18)ТС похоже не в курсе, что такое расширение и как ими пользоваться)
   Alexandr_U1982
 
23 - 12.07.18 - 17:42
(16)Как раз вариант, когда баз много и все типовые.
Ты делаешь расширение и один раз подключаешь его к каждой базе.
Базы продолжают обновляться батником.
   DTX 4th
 
24 - 12.07.18 - 17:46
(23) Ага, а потом форма меняется, расширение перестаёт работать. И снова лезть в каждую базу?

И с ComConnector'ом не поможет в любом случае. Да и костылить формы такое себе удовольствие.
   Emery
 
25 - 12.07.18 - 18:45
(0) > ЗУП3. Есть ли возможность быстро и просто начислить зарплату программно?

Есть! Но только не ЗУПе, любой версии.

А так, не совсем понятен термин «начислить». Я понимаю «учет и расчет заработной платы». Дополнительными модулями к этому могут быть «кадровый учет», «управление персоналом» (что к «зарплате», на мой взгляд, имеет мало отношения), «учет рабочего времени» и т.п. Ну, да ладно, пусть будет «начислить».

Вот берем ЗУП последней версии и сохраняем конфу в xml-формате. Получаем «всего лишь» 1.3 гектара данных в более чем 28 тысячах файлов. И что-ж «они» туда «напхали»? Смотрим:

– \Ext\ParentConfigurations\ЗарплатаИУправлениеПерсоналомКОРП.cf – 200 МБ;
– \Catalogs\ЭлементыЭлектронныхРесурсов\Templates\КонвертерВидеоWindows\Ext\Template.bin – 34,3 МБ;
– \Catalogs\ЭлементыЭлектронныхРесурсов\Templates\КонвертерВидеоLinux\Ext\Template.bin – 22,3 МБ
– \Catalogs\ЭлементыЭлектронныхРесурсов\Templates\КонвертерВидеоMac\Ext\Template.bin – 10,7 МБ;

Далее пошли вроде обязательные объекты конфигурации. Посмотрим бинарники:

– \DataProcessors\ОбщиеОбъектыРеглОтчетности\Templates\ДистрибутивКомпонентыПечатиМашиночитаемыхФорм\Ext\Template.bin – 6,0 МБ;
– \CommonTemplates\КомпонентаОбмена165\Ext\Template.bin – 5,0 МБ;
– \Catalogs\СертификатыКлючейЭлектроннойПодписиИШифрования\Templates\КомпонентаXMLDSIG\Ext\Template.bin – 4,5 МБ;
– \Catalogs\ЭлементыЭлектронныхРесурсов\Templates\ПрограммаCURL\Ext\Template.bin – 3,9 МБ;
– \CommonTemplates\КомпонентаСклоненияФИО\Ext\Template.bin – 2,0 МБ;

И т.д.

А что, насчет кода? Смотрим файлы *.bsl и *.txt:
– \DataProcessors\ДокументооборотСКонтролирующимиОрганами\Ext\ObjectModule.bsl – 4.3 МБ (более 57 тысяч строк кода);
– \CommonTemplates\ЗарплатаКадрыПереносДанныхИзЗУП25\Ext\Template.txt – 4,0 МБ (почти 58 тысяч строк кода);
– \CommonTemplates\ЗарплатаКадрыПереносДанныхИзЗУП25КОРП\Ext\Template.txt – 4,0 МБ (почти 58 тысяч строк кода);
– \CommonModules\УчетСтраховыхВзносов\Ext\Module.bsl – 3,7 МБ (почти 46 тысяч строк кода);
– \Reports\РегламентированныйОтчетРасчетПоСтраховымВзносам\Ext\ObjectModule.bsl – 3,5 МБ (почти 47 тысяч строк кода); 
– \CommonModules\УчетНДФЛ\Ext\Module.bsl – 1,9 МБ (более 23 тысяч строк кода);
– \CommonModules\КадровыйУчетРасширенный\Ext\Module.bsl – 1,8 МБ (более 26 тысяч строк кода);

И т.д.

Всего файлов *.bsl – 6699, общим объемом более 225 МБ.

Не, ну что можно сказать? – Монстр, однозначно! Уже по объему данных и кода это чудо природы вызывает легкую оторопь. – Ребята! Может не надо нам такого универсального чудовища? Может быть, написать простенькую, легкую базовую систему, наращиваемую десятками и сотнями плагинов / компонент, с открытым SDK либо даже опенсорсных и не засовывать без нужды в память сервера бинарники для Линукса и Мака, вроде конверторов видео или там модуль склонения фамилий на все случаи жизни? Или может быть, ждать этого ранее прихода эпохи «Цифрового Коммунизма» не стоит?

4. Свой вариант
   Вафель
 
26 - 12.07.18 - 18:50
(25) ты еще на микросервисы предложи перейти
   nicxxx
 
27 - 12.07.18 - 18:51
(25) еще один убийца 1С появился :)))))
   Emery
 
28 - 12.07.18 - 18:57
(26) Не, ну одному, конкретному предприятию реально столько всего не надо. Нужна ясная концепция программы и легкость доступа к нужному месту кода. Где-то была статистика, что только в России бродит не менее 200 тысяч программ-самописок по расчету заработной платы. Наверное, не от хорошей жизни народ пишет что-то свое, а не использует всеми обожаемый ЗУП :) .
   Web00001
 
29 - 12.07.18 - 18:57
(27)Каждый 1Сник должен хотя бы раз в жизни сказать "это должно быть проще! Я точно знаю!" Ну некоторые даже садятся писать это самое проще. А некоторые просто говорят. Итог все равно один.
   Web00001
 
30 - 12.07.18 - 19:00
(12)autoit или сценарное тестирование?
   DTX 4th
 
31 - 12.07.18 - 19:11
(30) Если это вопрос, зачем мне это нужно, то для автоматизации :)
   Emery
 
32 - 12.07.18 - 19:12
(29) > Итог все равно один.

Я про свою собственную, внедренную на своем предприятии, программу по расчету зарплаты здесь говорил уже много раз. Программа (на «семерке») работает более 13 лет и необходимости ее замены на ЗУП или любую другую нет. Да, я живу в ЛНР, а не в России, но наше законодательство приспосабливается к вашему, а валюта давно уже ваша. В прошлом году адаптировал расчет средних, «как в России», разницы, почти никакой. НДФЛ наш, правда, попроще вашего, но отчетность в пенсионный и налоговую, тоже не без приколов, ЗУП бы здесь бы нам помог мало.

Теперь я понимаю, почему мою программу трудно предложить другим. Из конкретной она должна становится универсальной, а это значит более сложной, для чего нужно больше мотивации, чем имеется. Однако сама идея простой и гибкой «зарплаты» никуда не денется. Она всегда будет витать в воздухе, пока какой-нибудь умелец или даже фирма (чем чёрт не шутит, может быть и «1С») не реализует ее.
   Akela has missed
 
33 - 12.07.18 - 19:57
(28) Вот бы их все посмотреть и пощупать на предмет интересных идей и решений.
 
 
   Garikk
 
34 - 12.07.18 - 20:05
ЗУП всегда был кошмаром, даже когда он был еще ЗиК-ом
там всегда какието заумные решения были которые настоящий ад был отлаживать и пытаться туда ченить свое подпихнуть

до сих пор с содроганием вспоминаю многостраничные запросы которые практически нереально вытащить чтобы позапускать вручную
   Emery
 
35 - 12.07.18 - 20:41
(32) + > наше законодательство приспосабливается к вашему

Вот, жду, когда у нас начнут повышать пенсионный возраст, «как в России». И это при том, что предприятие платит в ПФ не 22%, а 31%, а ранее (когда мы были еще в составе Украины) было 38-42%, в зависимости от категории страхователя (только 8% для инвалидов было). Нас, правда, «успокаивает», то, что обычная пенсия в ЛНР – 3 тыс. рублей, т.е., что есть, что нету, в любом случае, если хочешь прожить – работай, либо оформляй вторую пенсию в Украине (но лично я от этого варианта отказался в принципе).

(34) > до сих пор с содроганием вспоминаю многостраничные запросы которые практически нереально вытащить чтобы позапускать вручную

Это лишний раз доказывает, что я выбрал правильную стратегию (отвечать можно только за свою программу, а не за чужую, а то, пишет один, внедряет другой, а ответственность несет третий). У меня все запросы на VFP к файлам dbf «семерки» очень компактны. И вообще, весь код внешнего VFP приложения занимает чуть более полумегабайта в исходниках. Уже только в силу этого работа у меня любимая и приятная :) .



Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует