gifts2017

Работа с "периодикой"

Опубликовал Михаил Семенов (Shaman100M) в раздел Обработки - Свертка базы

Сохранение, восстановление, удаление периодических значений констант и реквизитов справочников в периоде, плюс дополнительная опция, идея подсказана Che Burashka: оптимизация (удаление "избыточных" записей).

Работа с периодическими значениями констант и реквизитов справочников.

В этой обработке собраны:
1. Сохранение периодических значений, действующих на указанную дату или их суммы в указанном периоде, во внешнем файле.
2. Восстановление периодических значений на указанную дату из внешнего файла.
3. Удаление периодических значение в указанном периоде.
4. Оптимизация периодических значений, - удаление "избыточных" записей, не влияющих на получение значений на какую-либо дату.

Особенности.

1. Сохранение - восстановление значений производится в файл periodic.dbf в создаваемый подкаталог PERIODIC каталога ИБ
2. Механизм "разбития" транзакций.
3. Настройка периодических реквизитов объектов (в таблице) по каждому выполняемому действию.
4. Режимы сохранения:
"Пустое значение" -сохранение последних периодических значений на дату конца указанного периода.
"СуммаПоДок" - сохраняется сумма всех прописанных документами периодических значений в указанном периоде
"СуммаОбщая" - сохраняется сумма всех периодических значений в указанном периоде
"СуммаКорр" - то же что и "СуммаОбщая" минус вручную установленное значение в дате конца периода.
5. Отображение выполняемых действий на форме и в окне сообщений.

За основу взята моя же http://infostart.ru/projects/1340/
Универсальность решения стала основанием для его выделения в отдельную обработку.

Изменения от 14.03.2008

- Обновлен интерфейс
- упрощен механизм транзакций
- добавлена возможность сохранения и восстановления записанных пустых значений
- исправлена ошибка восстановления периодических значений общего (<>, <>,<>) и неопределенного типа.

Изменения от 01.10.2008

- добавлен индикатор реквизитов "Ручное изменение"
- расширена возможность открытия объектов расшифровки из печатной таблицы в форме списка, а также владельца установленного элемента

Скачать файлы

Наименование Файл Версия Размер
Версия 31.10.2007 201
.1193842889 19,81Kb
26.09.14
201
.1193842889 19,81Kb Скачать
Версия от 01.10.2008 368
.1205510655 24,49Kb
26.09.14
368
.1205510655 24,49Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Михаил Семенов (Shaman100M) 01.11.07 09:59
01.11.07 10:00 подправил внешний вид кнопок, обход и подсказки.
2. Михаил Семенов (Shaman100M) 01.11.07 10:12
Вопрос к аудитории: использует ли кто периодические реквизиты в планах счетов?
3. Владимир (svsrus) 01.11.07 11:35
Здорово! Особенно 4-ый пункт) +
До сих пор не приходилось использовать периодические реквизиты в плане счетов.
4. Михаил Семенов (Shaman100M) 02.11.07 18:34
Тогда, справедливо будет Che Burashka оставить здесь коммент для рейтинга за идею.
5. Сhe Burashka (CheBurator) 02.11.07 22:50
Пришел, увидел, почитал.. не увидел "печати за период"...
но нормуль...
Shaman100M; +1 Ответить 1
6. Михаил Семенов (Shaman100M) 04.11.07 19:29
(5) Привет! По заголовку "Работа с" логично было бы здесь видеть не только печать, но и множественный фильтр, выборку с пометками, и т.д. В общем, было бы похоже на учойс.
Другое, будет ли востребована такая овчинка? Три действия и доп. четвертое, - твоя задумка (за него плюсанул), - востребованы (хотя бы при свертке). Для остального есть привычная встроенная в 1с-ке "история" и штатная в ТиС-е "ЗначенияПериодическихРеквизитов" с печатью.
А потом "Печать за период", - есть смысл? Там "портянка" на сотни листов будет... :)
Или все же переименовать в "Работа админа с перидикой"?
7. shoy Андрей ais (shoy) 11.03.08 19:48
Замечание при режиме восстановления:
Прежде чем
Периодический.ДатаЗнач = СохрДата;
Периодический.Значение = ТекЗначение;
Периодический.Записать();
неплохо бы было назначить тип элементу:
ТипОбъекта = ТипЗначенияСтр(ТекЗначение);
Если ТипОбъекта = "Справочник" Тогда
Если Найти(ТекРеквизит,"Субконто") > 0 Тогда
Периодический.НазначитьТип(ТипОбъекта+"."+ТекЗначение.Вид());
КонецЕсли;
ИначеЕсли (ТипОбъекта = "Документ") или (ТипОбъекта = "Перечисление")
Тогда
Периодический.НазначитьТип(ТипОбъекта+"."+ТекЗначение.Вид());
КонецЕсли;
Shaman100M; +1 Ответить 1
8. Михаил Семенов (Shaman100M) 14.03.08 19:26
(7) Спасибо за "фикси". Обработку обновил.
А по назначаемому типу, содержание в идентификаторе реквизита "Субконто" ни о чем не говорит :)
Код
НазначаемыйТип = ТипЗначенияСтр(ПериодичЗначение) + "." + ПериодичЗначение.Вид(); // для типов "Справочник", "Документ","Счет","Перечисление"
НазначаемыйТип = ТипЗначенияСтр(ПериодичЗначение); // все остальные типы значений
Показать полностью

9. Tatarin_url (Tatarin_url) 13.06.08 15:52
Прикольная штука, спасибо
10. Андрей (andrei_prok) 06.08.08 12:08
Хорошая обработка, лучшая из всех, касаемо переодических реквизитов! Мне очень помогла исправить ляп бухгалтеров. Спасибо!!!
11. Mihenius (mihenius) 01.10.08 11:55
0 : 00 : 00 : 00 : 21 / 37 059 : Оптимизация значений по 12 периодическим реквизитам справочника СвоиЮрЛица
Периодический.Удалить();
{...\PERIODIC.ERT(1487)}: Значение установлено документом!
12. Mihenius (mihenius) 01.10.08 12:12
. . шт. 115.000
03.04.03 118.000
09.08.04 142.000
14.10.04 114.000
25.02.05 110.000
12.05.05 108.000
16.06.05 108.000
08.07.05 108.000
19.08.05 112.000
16.10.05 105.000
07.02.06 Установка новых цен № КП-0000372 110.000
25.03.06 Установка новых цен № КП-0000922 109.000
12.08.06 Установка новых цен № КП-0003021 93.000
08.10.06 Установка новых цен № КП-0003614 96.000
19.12.06 Установка новых цен № КП-0004470 105.000
20.02.07 Установка новых цен № КП-0000326 105.000
20.02.07 Установка новых цен № КП-0000330 110.000
27.03.07 Установка новых цен № КП-0000643 110.000
14.04.07 Установка новых цен № КП-0000818 110.000
15.05.07 Установка новых цен № КП-0001134 110.000
09.06.07 Установка новых цен № КП-0001398 110.000
06.07.07 Установка новых цен № КП-0001600 110.000
28.07.07 Установка новых цен № КП-0001816 110.000
21.08.07 Установка новых цен № КП-0002008 110.000
08.09.07 Установка новых цен № КП-0002155 110.000
05.10.07 Установка новых цен № КП-0002330 115.000
20.10.07 Установка новых цен № КП-0002433 115.000
12.11.07 Установка новых цен № КП-0002569 115.000
29.11.07 Установка новых цен № КП-0002697 115.000
15.12.07 Установка новых цен № КП-0002839 115.000
30.12.07 шт. 105.000
19.01.08 Установка новых цен № КП-0000051 115.000
31.03.08 Установка новых цен № КП-0000694 126.000

Почему-то рубится на 25.02.05, значение установлно не документом ...
нужно попробовать без транзакции ...
13. Mihenius (mihenius) 01.10.08 12:19
Предлагаю в исключение добавить
ТабНеКорр.ТекстОшибки = ОписаниеОшибки(); и соответсвующую колонку в ТЗ и таблице
14. Mihenius (mihenius) 01.10.08 12:22
Если есть сохраненная настройка отчета с галками почему-то не появляется колонка с пометками
Появляется, только если нажать вручную на одну из галок ...
15. Mihenius (mihenius) 01.10.08 12:30
Так же в ТабНеКорр и отчет нужно добавить колонку Владелец, чтобы сразу видеть чей подчиненный элемент попал в отчет.
16. Mihenius (mihenius) 01.10.08 14:06
(11) Скорее всего ошибки в таблицах, запустил ТИИ, жду )
17. Mihenius (mihenius) 01.10.08 14:50
Ага, так и есть в 11 ложная тревога, глюки в базе ;)
18. Михаил Семенов (Shaman100M) 01.10.08 16:09
(17) Пожалуй, добавлю в таблицу значений на форме инфу о возможности ручного изменения пер. реквизита.
(15) (13) что нить добавим....
(14) Галки на форме можно сохранять стандартным "сохранением настроек", однако, лучше их оставлять непомеченными, чтоб юзер осмысленно их устанавливал. А табличная часть, - она зависит от конфигурации, стандартное сохранение может не прокатить, - поэтому и сделал свое сохранение.
19. Алексей Гришков (asg1975) 03.01.12 00:38
Очень помогла при свертке базы. Плюсую!
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа