Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   ЗиК отпуск по уходу (http://forums.kuban.ru/f1040/zik_otpusk_po_uhodu-2016059.html)

Гена 06.01.2012 12:26

(117), (118) как говорил великий и ужасный ник Т1С Журавлик - когда в компоненте Расчёт сделаны записи - они зависают...

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

Гена 06.01.2012 12:37

это в жизни сказал "Гена дурак" и отключились...
а в прогамме после делита надо сделать неработающю запись в дальнейшем... поставить метку - эту запись мы пропустим...

Buhta 06.01.2012 12:41

121-Гена > ОУ не делает записей в ЖР. только устанавливает периодические реквизиты состояния сотра и действия начисления/удержания

Гена 06.01.2012 12:43

а теперь представьте (это наш реальный случай)... программа не умеет думать... она работает строго "да-нет"... поэтому ни одна программа не отработает исправления исправления... т.е. второй ошибки...

Гена 06.01.2012 12:46

(123) о чём спор? моё слово против твоего...
практика - критерий истины... пусть автор ветки проверит

victuan 06.01.2012 12:46

124-Гена >Удаление ОУ ни к чему в расчетах не приводит.
Этот документ подготавливает расчет. А сами записи расчета инициируются документом НачислениеЗарплаты.
Если его не трогать, то ничего и не собьется в ЖР.

Гена 06.01.2012 12:47

или смоделируйте в демо...

в конце концов - у вас руки из которого места растут?

victuan 06.01.2012 12:51

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

Buhta 06.01.2012 12:56

может не дать просто удалить, т.к. начисление з/п подцепляет ОУ. (надо посмотреть движения). тогда в НЕнужном ОУ устанавливаем дату досрочного выхода на работу равной дате начала и перепроводим. затем перепроводим правильный ОУ

victuan 06.01.2012 12:59

129-Buhta >Пусть оба висят, ничего не надо менять. просто правильно их провести как я указал в (94) и всё.

Гена 06.01.2012 13:00

(129) Лена , золотая моя!
Сделай последний ход

victuan 06.01.2012 13:02

131-Гена >Это который? "Здравствуй, дедушка"? ;)

Гена 06.01.2012 13:02

(130) не получится...

думайте дальше

Buhta 06.01.2012 13:03

128-victuan > если ОУ "подцеплен", то и сделать его непроведенным без отката не получится. поэтому твой рецепт не сработает... короч, если один из ОУ со светлой галочкой, то удаляем его и работаем со вторым. если оба с темной галочкой, то (129)

victuan 06.01.2012 13:05

133-Гена >У меня получилось. Кто мешает программно сделать непроведенным?

Buhta 06.01.2012 13:10

135-victuan > ну программно можно сделать что угодно:) и реквизиты перепрописать тоже

Гена 06.01.2012 13:12

да... уж...

мне жаль, что вы не прошли тест...

ну кто вам сказал, что реквизит меняется только доком регистратора?

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

подключите ТРЕТЬЕ измерение...

на пальцах:
щёлкните внешней обработкой Состояние, затем перепроведите последний ОУ...

вот и всё - ву а ля!

victuan 06.01.2012 13:14

134-Buhta >(129) не получится. Надо сбросить неверное состояние сотрудника на дату окончания документа. Потому что если проведены оба документа, то когда проводим один из них, то он видит неверное состояние сотрудника, оставленное другим проведенным ОУ.
Порочный круг. Разорвать его может только распроведение одного из ОУ.
Или переписание логики проведения документа.
Других вариантов нет.
Думайте. Если думать не получайте, проверяйте на копии.
Проверите, расскажите.

Buhta 06.01.2012 13:16

137-Гена > см. (136). внешней обработкой и др. программыми способами не спортивно:) нужен рецепт для чайника-буха. чем (129) не устраивает?

victuan 06.01.2012 13:19

137-Гена >Можно и так. Главное, чтобы документ ОУ увидел верное Состояние на конец.
Но если изменить состояние программно и оно уже встало как надо, то зачем перепроводить ОУ?

Buhta 06.01.2012 13:19

138-victuan > проверила. по (129) все получается

victuan 06.01.2012 13:21

139-Buhta >Устраивает.
В этой ветке Лена самая умная. Признаю.

Buhta 06.01.2012 13:24

142-victuan > вот код модуля, по которому и без проверки понятно, что получится:
Если ПустоеЗначение(ДатаВыходаНаРаботу)=1 Тогда
УстановитьРеквизитСправочника(Сотрудник,"СостояниеФизлица",Сотрудник.СостояниеФизлица.Получить(Окончание),Окончание+1);
ИначеЕсли [b]ДатаВыходаНаРаботу > Начало [/b]Тогда
УстановитьРеквизитСправочника(Сотрудник,"СостояниеФизлица",Сотрудник.СостояниеФизлица.Получить(ДатаВыходаНаРаботу-1),ДатаВыходаНаРаботу);
КонецЕсли;

Если ЭтоВоеннослужащий = 1 Тогда
Если (ПустоеЗначение(ДатаВыходаНаРаботу)=1) или ((ПустоеЗначение(ДатаВыходаНаРаботу)=0) и (ДатаВыходаНаРаботу > Начало)) Тогда
УстановитьРеквизитСправочника(Сотрудник,"СостояниеФизлица",Перечисление.СостояниеФизлица.ВременноНеРаботаетВоеннослужащий,Начало);
КонецЕсли;

ВРПособий = ВидРасчета.ПособиеПоУходуЗаРебенкомФССс2007Военные;
Иначе
Если (ПустоеЗначение(ДатаВыходаНаРаботу)=1) или ((ПустоеЗначение(ДатаВыходаНаРаботу)=0) и ([b]ДатаВыходаНаРаботу > Начало[/b])) Тогда
УстановитьРеквизитСправочника(Сотрудник,"СостояниеФизлица",Перечисление.СостояниеФизлица.ВременноНеРаботает,Начало);
КонецЕсли;
ВРПособий = ВидРасчета.ПособиеПоУходуЗаРебенкомФССс2007;
КонецЕсли;

//ключевые моменты выделила

Гена 06.01.2012 13:26

(141) не верю...

не должно было получиться правильным...

это исключено по логике программы

victuan 06.01.2012 13:26

143-Buhta >я уже проверил.

Гена 06.01.2012 13:33

что проверил?

что перепровод любого из пересекающихся ОУ даст на выходе правильный перреквизит?

давайте начданные - я открыл программу ... ЗиК_317 и моделирую

поехали

Гена 06.01.2012 13:40

или Вы... в смысле... перед девушкой...

а я не подыграл...

Лена, счастье, ты смотри главное - "УстановитьРеквизит"
у нас был спор - как время шарашится...

victuan 06.01.2012 13:44

Нет, Лена на самом деле предложила самое оптимальное решение, без программирования.
Действительно работает, я не учел в начале, что [b]дата прекращения равная дате начала[/b] в ОУ полностью убирает периодику в Состоянии, порожденную этим ОУ.
При этом записи ЖР не трогаются.
Поэтому для второго ОУ исчезает неверное Состояние и он перепроводится верно.

victuan 06.01.2012 13:45

Лена - золото, я второй день мусолил эту тему, а она одним постом поставила всё на место.

Buhta 06.01.2012 13:48

147-Гена > прочитай внимательно, что и как перепроводить.
поехали: открываешь НЕправильный ОУ, ставишь дату досрочного выхода на работу равной (или меньшей) дате начала этого отпуска и перепроводишь его. смотришь историю сотра - и "о чудо", все установки реквизитов состояния по этому доку пропали:) потом перепроводишь правильный ОУ и все встает на свои места

Гена 06.01.2012 13:53

да НЕ СРАБОТАЕТ перепровод без третьего элемента...

victuan 06.01.2012 13:53

147-Гена >А что за спор-то был?

Buhta 06.01.2012 13:56

149-victuan > спасибо:) а спор вроде про снегурочку был и про то, пришется ли время при записи реквизитов...

victuan 06.01.2012 13:56

151-Гена >Я только что проверил. Воспроизвел ситуацию в (90). С помощью (94) создал неверное состояние сотрудника:
[em]А затем кому-то взбрело в голову снова перепровести ОУ№1 и после повторного его проведения состояние стало другим. Все дело в том, что в системе на момент перепровдения существует уже проведенный ОУ№6. При проведении ОУ№1 проверяет состояние сотрудника на дату 19.03.10 (18.03.10+1), а оно "Временно не работает" (установлено ОУ№6). Поэтому это состояние и устанавливает ОУ№1 на конец.
После этого был также повторно перепроведен ОУ№6 и он также установил на конец "Временно не работает" (т.к оно действует на 06.09.11, установленное перепроведенным ОУ№1). Т.е. документы циклически повлияли друг на друга.[/em]
А с помощью (129) состояние вернул на место.
Так что Лена права. Ведь ее решение укладывается в мою теорию.

Гена 06.01.2012 14:04

Лена не может быть права, потому что она всегда права...

(154) пошла работа...
перекатывайся на новый Текущий период (месяц)

Buhta 06.01.2012 14:07

154-victuan > кстати, у тебя нет мыслей по борьбе с минусами в СЗВ-6-3? хотя автоматизировать видимо не получится... чтоб не пересчитывать и не пересдавать все с начала года думаю обыграть "рокировкой". для этого надо подобрать сотра-дублера того, у которого минусы полезли, т.е. сотра с примерно тем-же уровнем дохода и подходящего по возрасту. и в пределах одного квартала дважды делать переброс сумм начислений и взносов между "плохошом" и "дублером". где-нить может такая "рокировка" негативно вылезти?

Гена 06.01.2012 14:16

защитница :)

Вы перекатились?

озвучьте текущий период программы

Buhta 06.01.2012 14:18

157-Гена > мы уже наперекатывались:) теперь твоя очередь:)

Гена 06.01.2012 14:18

текущий период - это внизу справа экрана:
ТП

Okhara 06.01.2012 14:37

не могу объяснить,зачем расчетчики ввели документ дважды.такая ситуация возникла второй раз,это было очень давно.тогда обошлось без жертв, перепроведением документов и доп обработкой.способ (129) не сработал, либо мы что-то не так сделали.правильно ли я понимаю,что ненужный документ может быть любой из двух?


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