|
Регистры сведений, периодические, не подчиненные. | ☑ | ||
---|---|---|---|---|
0
Target1025
26.12.19
✎
17:58
|
Столкнулся с проблемой при попытке чтения РС и удаления записей по человеку. При чтении набора записей, я считал, что он выдаст все даты записей в случае дубликатов по периодам, но в наборе выдается одна запись, по физлицу, но по случайному периоду записи. В итоге задумка собрать даты дубликатов, а потом поудалять через МенеджерЗаписи не работает. В РС СведенияОСтажеРаботыНаСевере есть только одно измерение - Физлицо
НаборЗаписей = РегистрыСведений.СведенияОСтажеРаботыНаСевере.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Физлицо.Установить(Физлицо.ссылка); НаборЗаписей.Прочитать(); МассивПериодов = новый Массив; Для Каждого запись из НаборЗаписей Цикл ПериодСтарый = Запись.Период; МассивПериодов.Добавить(ПериодСтарый); Сообщить("Прочитано " + Физлицо + " от " + ПериодСтарый ); КонецЦикла; |
|||
1
Momus
26.12.19
✎
18:00
|
(0) мб в периодичности дело?
|
|||
2
Momus
26.12.19
✎
18:01
|
(1) хотя нет, бред
|
|||
3
Target1025
26.12.19
✎
18:11
|
(0)
https://ibb.co/KqbBDm8 https://ibb.co/jTYXLKj Опишу задачу. ОК сошел с ума, влез в физлица, перехреначил Северную надбавку, из-за чего все начисления ЗП пошли по ....! У бухов возникла мысль сделать выгрузку сведения по СН с архивной базы и переписать в текущей. Выгрузку в текстовый документ сделал, загрузку - сделал. Но теперь осталось сделать удаление тех сотрудников, что фигурируют в выгрузке. |
|||
4
Сияющий в темноте
26.12.19
✎
19:12
|
чего удаление?
очистить регистр и перенести с архива? |
|||
5
Target1025
26.12.19
✎
19:19
|
(4) Тут не все так просто! ДЕло в том, что _могут_ быть приняты на работу те, кто не был в архивной базе. И вот их трогать нельзя. Т.е. можно и нужно удалить только тех физлиц, что фигурируют в выгрузке из архивной базы.
|
|||
6
Target1025
26.12.19
✎
19:26
|
Где-то наворочал что-то неправильно, что - не пойму.
Для Инд = 1 По Текст.КоличествоСтрок() Цикл Строка = Текст.ПолучитьСтроку(Инд); МассивПодстрок = ОбщегоНазначенияЗК.РазложитьСтрокуВМассивПодстрок(Строка, ":"); ДатаЗаписи = Дата(МассивПодстрок[0]); НовыйGUID = Новый УникальныйИдентификатор(МассивПодстрок[1]); ФизЛицо = Справочники.ФизическиеЛица.ПолучитьСсылку(НовыйGUID); /// вот тут будет кусок удаления, его не привожу МенеджерЗаписи.Физлицо = Физлицо; МенеджерЗаписи.Период = ДатаЗаписи; МенеджерЗаписи.Записать(); Сообщить("Записано " + Физлицо + " от " + ДатаЗаписи); ОбработкапрерыванияПользователя(); Конеццикла; Тут тоже вроде все просто: выбрал текстовый файл, спозиционировал менеджерзаписи, сделал запись. Вот тут у меня вылезла проблема: менеджерзаписи пишет 1 (одну) запись в бд, хотя он вызывается дважды: Записано XXX от 03.03.2012 0:00:00 Записано XXX от 21.11.2015 0:00:00 Но в базе после обработки одна запись от 21.11.2015. При этом, до обработки их две, а после - одна. При этом, по факту, я гружу в ту же базу, что выгружаю, т.е. база данных не должна поменяться. Но она меняется. Как с этим разрулить - я не понимаю. |
|||
7
Borteg
26.12.19
✎
21:02
|
(6) где создание менеджера записи
|
|||
8
Target1025
27.12.19
✎
02:22
|
(7) Перед циклом:
МенеджерЗаписи = РегистрыСведений.СведенияОСтажеРаботыНаСевере.СоздатьМенеджерЗаписи(); Текст = Новый ТекстовыйДокумент; Текст.Прочитать(ИмяФайла,КодировкаТекста.UTF8,Символы.ВК+Символы.ПС); Для Инд = 1 По Текст.КоличествоСтрок() Цикл //... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |