bdd2

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

Опубликовал Михаил Семенов (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
.1193842889 19,81Kb
26.09.14
201
.1193842889 19,81Kb 201 Скачать
Версия от 01.10.2008
.1205510655 24,49Kb
26.09.14
368
.1205510655 24,49Kb 368 Скачать

См. также

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

9. Tatarin_url (Tatarin_url) 13.06.08 15:52 Сейчас в теме
Прикольная штука, спасибо
10. Андрей (andrei_prok) 39 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) 1174 01.10.08 16:09 Сейчас в теме
(17) Пожалуй, добавлю в таблицу значений на форме инфу о возможности ручного изменения пер. реквизита.
(15) (13) что нить добавим....
(14) Галки на форме можно сохранять стандартным "сохранением настроек", однако, лучше их оставлять непомеченными, чтоб юзер осмысленно их устанавливал. А табличная часть, - она зависит от конфигурации, стандартное сохранение может не прокатить, - поэтому и сделал свое сохранение.
19. Алексей Гришков (asg1975) 214 03.01.12 00:38 Сейчас в теме
Очень помогла при свертке базы. Плюсую!