gifts2017

Ограничиваем документы временными рамками

Опубликовал qwe qwerty (quebracho) в раздел Программирование - Практика программирования

Небольшой пример (8.2.13.205) по выстраиванию документов в диапазоне заданных временных границ, с заданным интервалом в пределах дня.

 

Однажды возникла задача жестко контролировать последовательность документов. Пример:

Сначала нам необходимо провести ОПВ, затем СО. Зададим временной интервал для ОПВ с 08:30:00 до 08:59:59, а для СО с 09:00:00 до 09:59:59. Данное решение, при желании, можно внедрить в реальную конфигурацию.

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

Наименование Файл Версия Размер
dt файл примера 25
.dt 32,58Kb
16.11.11
25
.dt 32,58Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Наталья Колосницына (natnat) 17.10.11 08:49
2. Наталья Колосницына (natnat) 17.10.11 08:50
3. qwe qwerty (quebracho) 17.10.11 12:08
Благодарю всех. В примере небольшой недочет, забыл передать параметр (ЭтотОбъект) в функцию (Документ1:ФормаДокумента:Модуль:Стр.4). Кстати, для очень тонкого клиента, в процедуру/функцию нужно передавать ссылку, а не объект, на Севере из ссылки получать объект. Впрочем, для тех, кто хоть немного работал с УФ — это пустяк. Ну, и если все-таки кто-то решился внедрить, думаю не стоит напоминать, что быстрее это сделать стандартным Drag & Drop. Удачи.
4. 15061964 (Nadegda_P) 18.10.11 23:00
Здравствуйте!
Меня заинтересовала Ваша обработка. Я попробовала воспользоваться ею. Но после объединения своей конфигурации с Вашей, документы формируются не согласно границ, которые я установила.Вероятно из-за "небольшого недочета". Но самостоятельно конфигурацию мне не исправить. Я не программист, а рядовой пользователь 1С_8,2 (бухгалтер). Может быть,я что-то не так поняла или сделала. Я думаю, что документы должны проводиться в том интервале времени, который установлен. Но этого не происходит. Доработайте пожалуйста.
5. qwe qwerty (quebracho) 19.10.11 06:12
Интересно, рядовые пользователи научились сравнивать и объединять конфигурации? Все работает отлично, причем на реальных предприятиях. Ставший уже классикой «Небольшой недочет» здесь не при чем. Напоминаю, это лишь пример. Вместо документов 1, 2, 3 и т.д. должны быть ваши реальные документы из вашей реальной конфигурации, которые нужно ограничить по времени. Это значит, недостаточно просто сравнить и объединить, нужно вносить небольшие изменения в модули форм документов, которые надо ограничивать (какие это изменения и в каких процедурах, как раз указано в примере). Конфигураций с которыми работают пользователи бесчисленное множество, поэтому я написал лишь пример, по которому даже рядовому программисту очень понятно что нужно сделать, чтобы работало. Если есть еще какие-либо вопросы, просьбы, пожелания по теме внедрения, то лучше написать мне сюда: f3c2e7@hotmail.com . С радостью помогу, или отвечу (безвозмездно:).
6. Алексей Фурманов (Aleksey-29) 19.10.11 08:49
Хочу уточнить, если документ1 должен проводиться с 8:30:00 до 8:59:59, а его проводят в 12:00, то как поведет себя эта доработка: выдаст сообщение или тихо проведет (а в какое время?)
7. qwe qwerty (quebracho) 19.10.11 09:37
Данная доработка меняет дату для вновь созданных документов (если документ записан, или проведен, т.е. уже не новый, то ничего не делает, что собственно логично). Если вы создаете документ1 в 12:00, то логика будет следующей:
1) Проверяется есть ли в базе документы (вида документ1) с датами с 8:30:00 до 8:59:59.
2) Если есть, то документу присваивается новая дата больше максимально найденной на интервал указанный в настройках, в противном случае присваивается дата 8:30:00 (т.е. считается что документ первый в указанных нами ограничительных временных рамках).
Вольный перевод:
Создаем документ в 12:00, он открывается, а у него (о чудо) дата не 12:00, а та которую мы хотим.
8. Руслан Программист 1с (Mudrii_Gankster) 16.11.11 12:13
А если есть документ датой 8:59:59, то программа создаст её датой 8:59:59, или 8:30:00, и работать с документами участвующим в партионном учете по такому алгоритму опасно
9. qwe qwerty (quebracho) 16.11.11 12:30
Если верхняя граница для данного вида документа 8:59:59, то переполнения не будет, просто будет лепить последнюю дату в диапазоне. Все последующие документы будут с 8:59:59. Впрочем логика алгоритма достаточно проста и прозрачна. У всех документов участвующих в контроле даты и времени на вкладке «Движения» реквизиту «Оперативное проведение» необходимо установить значение «Запретить», т.е. жертвуем оперативным ведением учета. Как это скажется на конкретной конфигурации и нужно ли вам вообще решаем сами и тестируем тоже.
10. qwe qwerty (quebracho) 16.11.11 12:59
quebracho пишет:

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

Немного улучшил алгоритм. При интерактивном перепроведении документов алгоритм отработает правильно.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа