Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   ЗиК. Справка о заработках для б/л. Техзадание (http://forums.kuban.ru/f1040/zik_spravka_o_zarabotkah_dlya_b_l_tehzadanie-1008822.html)

Гена 14.04.2011 10:36

ЗиК. Справка о заработках для б/л. Техзадание
 
завести новый документ с реквизитом шапки Сотрудник с типом значения Справочники.Сотрудники, где в шапке также дата, номер, организация чужой справки, а в табличной части год и сумма заработка...

далее... в модуле формы дока БольничныйЛист в
Процедура ПриИзмененииУчетаЗаработка()
связать заполнение значений ЗаработокЗаПервыйГодДругиеСтрахователи и ЗаработокЗаВторойГодДругиеСтрахователи с суммированием заработков из всех вышеописанных документов справок, введённых данному сотруднику...

создать новый журнал документов по этим справкам с графами отбора...

неужели так сложно, что мои программисты никак не сделают?

Пудель 14.04.2011 10:50

ну разве что с помощниками :)

roma n 14.04.2011 11:14

+(1) :)
Ну, барин, ты задачи ставишь! За десять дён одному не справиться, тут помощник нужен — хомо сапиенс! © Горин.Г. Формула любви

Гена 14.04.2011 11:33

волки...

Гена 14.04.2011 12:17

а ещё, если помечтать, в диалоге дока справа внизу текст "Картинка:" и поле выбора файла сканкопии этой справки... все сканчики - в одной папке "Изображения справок"...

тогда расчётчица по кнопке печать в доке БЛ может выбрать и печать справки... копия верна... потом приколоть с расчётом к б/л...

adml 14.04.2011 12:35

Легко! В т.ч. и сканирование. Но скока это будет в "граммах"?

victuan 24.05.2011 06:38

0-Гена >А почему чужая организация в шапке, а не в таб.части документа?

Пацталоцци 24.05.2011 06:44

(6) потому что один документ - это одна справка от одной организации.

victuan 24.05.2011 07:00

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

Пацталоцци 24.05.2011 07:17

(8) ну почему же нельзя? мне кажется, тоже хороший вариант.

TriD 24.05.2011 07:54

(8,9) А смысл? Справки могут быть принисены в разное время - что теперь, документ корректировать? А в модуле все равно придется со всех собирать - мало ли что там юзеры навносили.

Гена 24.05.2011 07:54

давайте сначала рассмотрим ручные действия расчётчика, у которого нет программы, и только потом нарисуем идеальное программное решение…

всегда надо ориентироваться на будущую проверку инспектора ФСС… инспектор запрашивает все больничные листки за проверяемый период (~ 3 года) с документами, подтверждающими расчёт… вот он берёт листок и видит некоторые суммы годовых заработков… хочет их проверить… в результате расчётчица заходит в программу и открывает дополнительный справочник или док по сотру с суммами:
2009 … 415000
2010 … 300000
и что?
да ничего… откуда взялись эти суммы? от предыдущего работодателя… а может от кучи предыдущих работодателей и пересекающихся совместительств… расчётчица лезет в архив, поднимать копии справок, лихорадочно искать все справки по данному сотру… а выездная проверка хочет забрать их себе… значит надо быстро ксерить все имеющиеся справки… получается ненужная суета…

к каждому б/л уже должны быть заранее простеплированы копии справок о заработке и записка-расчёт… пришёл инспектор – отдали ему все б/л со всеми копиями – и пусть проверяет до посинения…

Вывод № 1
Надо изначально организовать в корневой программной папке папку «Справки о заработке для БЛ», где хранить скан-рисунки всех принесё***** справок… в доке БЛ предусмотреть новую опцию по кнопке «Печать» - Печать всех справок о чужих заработках… распечатал вместе с запиской-расчётом, прикрепил к больничному листку и успешно забыл…

Вывод № 2
Для полноценной работы по выводу № 1 необходимо иметь не подчинённо справочную структуру по этим справкам, а строго документную…
новый док «Справка о заработке для БЛ»… реквизиты: Сотрудник, Год заработка, Сумма заработка, Страхователь (не обязательный к заполнению – для эстетов), Рисунок (активная ссылка на соответствующий jpg самой справки в вышеупомянутой папке сканов…

Вывод № 3
Подокументная стуктура справок позволяет также иметь их хронологию, когда ДатаДок соответствует дате приноса сотром данной справки, что позволит успешно снять все будущие вероятные споры с сотрудником по поводу задержки с пересчётом больничного листка после приноса данной справки… Печать реестра этих новых доков вообще позволяет иметь фактически журнал регистрации справок о заработке (для эстетов)

VZ 24.05.2011 09:56

0-Гена > Забудь... Херня это.
Во-первых, упомянутая "Справка" - чужой документ. Т.е., есть печатная копия. И твоей - не нужно, она будет фальшивая.
Во-вторых, распределение по месяцам - не нужно. Нужна итоговая сумма по годам.
Следовательно, "форма" - блажь и ненужные хлопоты.
Остается функционал: хранить эти самые итоговые цифры, и, как бонус, реквизиты справок. Можно сканы.
Ограничения: не изменять штатные метаданные, механизм обращения к "справкам" локализовать максимально.
Решаемо. И решено :) Без сканов, правда, поскольку расчетчица сказала "нафиг". И действительно: с одной папочкой ей проблем меньше, чем возня со сканером...
Алгоритм прост, локализован, не мешает обновляться, справка автоматически учитывается после заведения.

victuan 24.05.2011 10:04

12-VZ >Ну так, поделись решением.

Гена 24.05.2011 10:05

(12) никто и не говорил про месяцы - только про годы...
новый док в программе необходим - см.3 в #11

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

VZ 24.05.2011 10:06

13-victuan > Вот как только Гена отбросит свои бухгалтерские фантазии про Большую Зеленую Кнопку... :D

VZ 24.05.2011 10:10

14-Гена > Еще раз: фигня. В 2011 году нужны справки по 2009 и 2010 году. В 2012 понадобятся для 2010 и 2011 года, и т.д. Остальные - мусор.
Никакого "документа" не нужно: это не динамические сведения и их надо завести один раз. И никаких "правок" - это чужое.

Гена 24.05.2011 10:17

сам же подтверждаешь, что справка понадобится минимум два года, а для женщин детородного возраста и гораздо больше...

дубль два: проверка ФСС обязательно потребует копии всех предоставленных справок - это раз
при судебном споре с "вредным" работником необходимо иметь подтверждение даты получения [b]данной[/b] справки от сотрудника... ты толкаешь на рукописный журнал регистрации справок и последующий лихорадочный поиск нужной справки в бумажном архиве... я предлагаю уже иметь такой журнал под рукой в электронном виде программного журнала документов и всегда иметь под рукой сканкопии всех справок...

VZ 24.05.2011 10:27

17-Гена > Гена, ты себя слышишь? Что несешь? Копия есть копия: ты их хранить будешь в отдельной папочке папочке с наклейкой "Справки за 20ХХ год". Никакого "рукописного журнала" не надо: откуда ты это взял??? Кто тебе напел про это?
И зачем, главное, какой-то "документ"? Ну объясни, зачем Документ-то??
Про сканы я объяснил: в БД им не место. Но иметь специализированный директорий никто не мешает для всяческих графических файлов. И для пользования этим директорием [u]не нужны никакие метаданные[/u]. Не надо заводить и заполнять никакие "реквизиты", никакие "пути к файлу" - хватит того, что уже [b]существует штатно[/b].

victuan 24.05.2011 10:27

15-VZ >А причем здесь Гена?

Гена 24.05.2011 10:38

Валера, по 255-ФЗ когда сотр приносит справку с прошлого места работы в течение 10-ти дней фирма обязана сделать перерасчёт и выплатить в ближайший зарплатный день...

если ты считаешь, что все работодатели белые и работники все пушистые, то это твоё право...

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

VZ 24.05.2011 10:39

19-victuan > Мне лень и неохота выкладывать какие-то частные, меленькие, примитивные "решения". Вот убедить Гену, что его пышные павлиньи хвосты нафиг не нужны, и можно обойтись простеньким механизмом, но который решает необходимые задачи - это да :))

VZ 24.05.2011 10:47

20-Гена > Ну и что? Еще раз: зачем для этого какой-то "Документ"? Вводишь две цЫфири, пересчитываешь [b]штатно[/b] больничный и т.д.
У тебя что, "обиженные" косяками носятся по коридорам? Ежедневно по табуну? И бедные расчетчицы обложились пухлыми папками со справками, в которых надо полдня искать нужную?
Гена, не парь мне мозг: я не твой директор, премию тебе не дам, и расписывать "завал работой" мне не надо: у меня перед глазами одна расчетчица, которая справляется с персоналом среднего заводика. Свыше 600 душ. Но одна. И какой толщины ее папка со справками, я отлично знаю. И сколько "обиженных" сотрудников "качают права" - тоже.
Не парь мне мозг: все твои "ужасы" - раз в пятилетку.

Гена 24.05.2011 10:51

Валера, ты уже сам понял, что пошёл не по тому пути решения задачи справок... поэтому ты и злишься...

VZ 24.05.2011 11:06

23-Гена > По тому, Гена. По тому. Сделал - и забыл. Работает, главное. А "реестр"... Состряпать поименный список с суммами справок в любой момент смогу. Если нужно будет. Когда их принесли? А кому это надо, интересно? На что это влияет? Ну, если что, зарезервировано поле под названием "комментарий" ;)
Сканы - отдельная песня. Этот механизм не зависит от конфигурации вообще. И от вида (бухгалтерия, ЗиК, ...) - тоже. И от набора метаданных. Привязать можно к любому элементу базы данных, не затрагивая самих данных. Привязка - чисто программная. Можно внешними обормотками. Можно внешними офисными пакетами.

Гена 24.05.2011 11:13

>Когда их принесли? А кому это надо

я предвижу, что инспектор ФСС может заинтересоваться - почему доплата по пересчёту прошла, например, в июне, а не в июле

VZ 24.05.2011 11:18

25-Гена > Все равно тебе придется напрячь личные голосовые связки для фразы "Когда принесли, тогда и пересчитали. У Вас есть нормативный документ, что это нельзя делать?"

Гена 24.05.2011 11:23

пилат-т-т... зачем напрягаться, когда [b]изначально[/b] проще заводить документы "Справка о заработке других страхователей" ?

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

Гена 24.05.2011 11:34

так что, отстань...
Who are you to fucking teacher me?
(с) Лавров по телефону Милибэнду
:)

VZ 24.05.2011 11:38

27-Гена > Ну и заводи свои "документы". Как будто они решат глупые вопросы. Как будто они вообще что-то решат.
Мне хватим моего решения: все данные для расчета б/л есть. "Павлиньи хвосты" в виде "сканов" прилепить можно: когда это будет нужно. Но пока никакого беспокойства нет: обходимся одной папочкой. С ксерокопиями.
А ты фантазируй, фантазируй... Накручивай "бантики".

Гена 24.05.2011 11:41

ЛАВРОВ (сдержанно):
Мы говорим: Европа, нам не враг ты!
Но сверхдержаве трудно жить без драк.
Мы агрессивны? Предъявите факты!
Где факты, сэр?

МИЛИБАНД (краснея):
Как вы сказали? Fuck?!

ЛАВРОВ (отмахиваясь):
Я не о том! Когда вас бьют по роже,
Вы будете недвижны, как тюфяк,
Иль всё-таки рукой махнете тоже?

МИЛИБАНД (смущённо):
Простите, сэр... Вы вновь сказали fuck?

ЛАВРОВ (не замечая):
Не делайте из Грузии икону!
Медведев умный, он кончал юрфак,
Мы действуем сугубо по закону...

МИЛИБАНД (белея):
Простите, сэр, но это третий fuck!

ЛАВРОВ (увлекаясь):
Любого, кем нарушена граница,
Мы запихнём в надёжный саркофаг.
Скажите это всем, кто усомнится!

МИЛИБАНД (дрожа):
Я понял, сэр! Не надо больше fuck!

ЛАВРОВ (непреклонно):
Россия, между прочим, сверхдержава,
А сверхдержаве нужен крепкий щит.
Кто будет нас учить основам права -
Тот затрещит, а после запищит!

МИЛИБАНД (в отчаянии):
Oh, shit! Злодеи сбрасывают маски!
Они хотят войны, держу пари!
(В трубку, умоляюще):
Please put in mind, that I am asking, asking...

ЛАВРОВ (в бешенстве):
Что?! Путин? Ass king?! Ну-ка, повтори!

(с) Д.Быков

UV2 24.05.2011 13:07

29-VZ > бИтиё определяет сознание... у меня в одной фирме сейчас полтора десятка контор на отдельных базах, в коих народ перемещается по конторам как тараканы по прихоте куроводителей - проблема учета этих справок объективно есть. Посему, для поддержки знаний и умений, смастерил на управляемом приложении таку-каку. учитываются как перенесенные данные по конторам, так и внешние справки с печатью сканов для учета сторонней составляющей в больничных...

VZ 24.05.2011 13:44

30-Гена > Вот уж не ведал, что тебе нравится "патриотическое" кривляние в стихоплетной форме. Петросяновское... Фу.

Хрен с тобой, даю мое простое решение, которое можно оснастить "бантиками", если понадобится (это про сканы).
Плюс единственная ветка метаданных: справочник [em]СправкиДляБЛ2011[/em], подчиненный [em]Сотрудники[/em]. Обновлению не мешают, главное, и не пропадут, ежели что :)
Обоснование подчиненности: автоматически добавляется поле для связки с сотрудником. Иначе надо самому делать ссылу. Лениво, и не вижу смысла напрягаться.
Структура: код числовой, четырехзначный, в пределах подчинения, синоним "Год", Наименование 40 символов, синоним "Примечание", единственный реквизит "Заработок", без синонима (обойдемся), число 14.2.
Обоснование: если справка по году не одна, скрепляем их скоросшивателем, сумму считаем ручками: не переломятся, поток данных маленький. Трудозатрат меньше моих, которые иначе потребуются для выборки нескольких записей, их суммирования и прочей фигни. Тем паче, случаи нескольких справок единичны, а возня как для мешка этих справок. Нафиг. Год, сумма - что еще нужно для расчета? А ничего.
"Примечание". Пусть пишут, что хотят: предприятие, признак "селедку заворачивали"... Посмотрю потом, как структурировать. Если будет что "структурировать": и думать не желаю, что будет "очень нада!".
Пока достаточно, один "бантик" в виде обормотки "Справки для расчета б/л" в ExtForms. Колонки: ФИО, Года. Про сканы сказал выше: надо - сделаем "бантик".
Как добраться для заполнения: через форму Сотрудника. Для удобства придется пожертвовать внешним кодом:
[em]Процедура ПриНажатииКнопки()
// бла-бла-бла
СписокВыбора.ДобавитьЗначение("ФормаСЗВ2010","Персонифицированный учет ПФР (ввод сведений о стаже)");
СписокВыбора.ДобавитьЗначение("ВводДанныхСЗВК","Форма СЗВ-К");
[b]Если ОсновнойЭлемент = ТекущийЭлемент() Тогда //VZ
СписокВыбора.ДобавитьЗначение("СправкиДляБЛ","Справки с прежних мест (для БЛ)");[/b]
КонецЕсли;
СписокВыбора.ДобавитьЗначение("СтарыеФормы","Формы прошлых лет");
// пропускаю...

[b]ИначеЕсли Имя = "СправкиДляБЛ" Тогда
ОткрытьФорму("Справочник.СправкиДляБЛ2011#"+Код,ТекущийЭлемент()); //VZ[/b]
ИначеЕсли Имя = "СтарыеФормы" Тогда
ПодМеню = СоздатьОбъект("СписокЗначений");
.......[/em]
Ну вот. Для заполнения достаточно. Теперь обеспечиваем расчет б/л. Разумеется, это форма документа БольничныйЛист. Кто бы мог подумать....

[em]Процедура ПолучитьЗаработок() Далее //VZ

//******************************************************************************
// ПолучитьЗаработокПредыдущихСтрахователей() //VZ
Процедура ПолучитьЗаработокПредыдущихСтрахователей()

Справки = СоздатьОбъект("Справочник.СправкиДляБЛ2011");
Справки.ИспользоватьВладельца(Сотрудник);
ГодСобытия = ДатаГод(ДатаНачалаСобытия);
Если ГодСобытия <> 0 Тогда
СмотримГод = ГодСобытия - 2;
Если Справки.НайтиПоКоду(СмотримГод)=1 Тогда
ЗаработокЗаПервыйГодДругиеСтрахователи = Справки.Заработок;
КонецЕсли;
СмотримГод = СмотримГод +1;
Если Справки.НайтиПоКоду(СмотримГод)=1 Тогда
ЗаработокЗаВторойГодДругиеСтрахователи = Справки.Заработок;
КонецЕсли;
Если (ЗаработокЗаПервыйГодДругиеСтрахователи+ЗаработокЗаВторойГодДругиеСтрахователи)<>0 Тогда
УчитыватьЗаработокПредыдущихСтрахователей = 1;
КонецЕсли;
КонецЕсли;
КонецПроцедуры //ПолучитьЗаработокПредыдущихСтрахователей VZ

//******************************************************************************[/em]
Далее портим функции разработчиков:
[em]Функция ПередЗаписью()
......................


[b]//VZ принудительно "нажмем кнопочку" "Заполнить" для двухгодичного заработка
Если (ЗаработокЗаПервыйГод + ЗаработокЗаВторойГод + ЗаработокЗаПервыйГодДругиеСтрахователи + ЗаработокЗаВторойГодДругиеСтрахователи) = 0 Тогда
Если (ДатаНачалаСобытия >= ДатаНачалаРеформыСоцСтрахования) Тогда
Если ПервичныйБольничный.Выбран()=0 Тогда
ПолучитьЗаработок();
КонецЕсли;
КонецЕсли;
КонецЕсли;[/b]

Возврат 1;

КонецФункции

//******************************************************************************
Процедура ПолучитьЗаработок()

Если Сотрудник.Выбран()=0 Тогда
Возврат;
КонецЕсли;

Если ПервичныйБольничный.Выбран()=0 Тогда

СписокЗаработка = глПолучитьЗаработокДляБЛ(Сотрудник,ДатаНачалаСобытия);
ЗаработокЗаПервыйГод = СписокЗаработка.ПолучитьЗначение(1);
ЗаработокЗаВторойГод = СписокЗаработка.ПолучитьЗначение(2);

[b]ПолучитьЗаработокПредыдущихСтрахователей(); //VZ добавим значения из справочек, если они есть[/b]

Иначе
.........................

Иначе

СписокЗаработка = глПолучитьЗаработокДляБЛ(Сотрудник,ДатаНачалаСобытия);
ЗаработокЗаПервыйГод = СписокЗаработка.ПолучитьЗначение(1);
ЗаработокЗаВторойГод = СписокЗаработка.ПолучитьЗначение(2);

ПолучитьЗаработокПредыдущихСтрахователей(); //VZ добавим значения из справочек, если они есть

КонецЕсли;

КонецЕсли;
КонецЕсли;


КонецПроцедуры //ПолучитьЗаработок

//******************************************************************************[/em]
Вот и весь "механизЬм". Под названием "введи справку и забудь".

victuan 24.05.2011 14:00

32-VZ >мда... И ты это называешь "[em]Ограничения: не изменять штатные метаданные, механизм обращения к "справкам" локализовать максимально[/em]"?
Я думал ты сделал типа Каминовских Налогового учета или КУДИР для УСН для типовой бух.

"[em]Обоснование: если справка по году не одна, скрепляем их скоросшивателем, сумму считаем ручками[/em]" Вовсе не обязательно, зачем наложил требование уникальности реквизита Год?

VZ 24.05.2011 14:18

33-victuan > Ну, штатные справочники и документы - на месте. Они не изменены: никаких новых реквизитов нет, потому обновлениям ничего не мешает. Так? Это и называется "Не изменять штатные метаданные".
Конечно, вообще весь механизм можно выбросить вовне. Конечно. Но расчетчице неудобно лезть во внешние формы. Ей удобнее с привычных мест: из формы Сотрудника. И в форме БольничныйЛист используется кнопка, которая уже есть. Которая заполняет "свои" заработки. Так удобнее.
Да, можно совсем не трогать код. Но для этого надо 1с++. А я не хочу: можно обойтись без лишней сущности, значит, обходимся без лишней сущности. Хлопотно это.

[em]Реквизит Год[/em]. Вообще-то, "Год" - это синоним. А так - "Код". Уникальность под защитой платформы ;) И в форме заголовок "сам" проставляется. Ленивей. Еще ленивей! :D

victuan 24.05.2011 14:28

34-VZ >"[em]Так? Это и называется "Не изменять штатные метаданные[/em]" Не так, ты добавил код в справочник Сотрудники и документ БольничныйЛист. Который придется востанавливать после обновления.

"[em]Уникальность под защитой платформы". [/em]Это ты так ограничил, уникальность у кода можно снять.
Я бы сделал как реквизит с отбором, а в модуле документа использовал бы ВыбратьЭлементыПоРеквизиту для суммирования Заработка.

VZ 24.05.2011 14:58

35-victuan > Не путай, путаник. "Метаданные" - это структура таблиц, самой базы данных. "Код" к метаданным не относится.
Что касается "восстановления". Ну, во-первых, и так достаточно "восстановлений". В том же больничном листе расчетчики попросили "Итого" в таблицах вывода печатной формы, и плюс еще отдельно "итого без НДФЛ". Дурость, практического значения не имеющая, Но раз на обратной форме БЛ есть такая графа...
Во-вторых, даже если я выкину код из МД, воспользуюсь 1с++, все равно код формы надо сохранять вовне. И при обновлении сравнивать: а не изменилось ли что. Так что в плане "меньше правки" ничего не выйдет. Главное, графика не тронута. Главное, накатанное обновление в любом случае не затронет штатное поведение и штатный расчет. А спохватиться и добавить "вставки" успеем.
Главное: задача выполнена? Раз введенный заработок сохраняется? Потом вспоминать об этом не надо? Да, сохраняется. Нет, не надо. Ну и славно. Трам-пам-пам.

VZ 24.05.2011 15:02

+36 "Я бы сделал как реквизит с отбором...". Делай. Я не захотел. Так - проще. И не будет "Ой, а я забыла, что уже завела".
Простое меньше ломается.

victuan 24.05.2011 15:10

36-VZ >Сам ты путаник. Код объекта метаданных относится к метаданным. Иди и освежи память.
Но дело не в этом, а в контрасте между (12) и (32). Т.е. в (12) ты анонсировал нечто противоположное по методике в (0), но на поверку в (32) оказалось нечто подобное (0).

VZ 24.05.2011 15:26

38-victuan > [em]Код объекта метаданных относится к метаданным[/em]
Пофантазируй, пофантазируй.
[url]http://traditio.ru/wiki/%D0%9C%D0%B5%D1%82%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5[/url]


Текущее время: 18:41. Часовой пояс GMT +3.