Задача: нужно переставить несколько документов по времени Проблема: документ может быть открыт для редактирования/просмотра другим пользователем, тогда метод Записать() дает ошибку "...Объект заблокирован:..." Конечно, выход из этой ситуации - запускать обработку по переносу документов монопольно, но хотелось бы найти решение для разделенного режима работы
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП) 1С Предприятие 8.3: Бух.предприятия 3.0 + самописка ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Кроме высшего образования, нужно иметь хотя бы среднее соображение
Блокировка(<?>); Синтаксис: Блокировка(<ВклВыкл>) Назначение: Установить/прочитать режим блокировки. Если при вызове метода параметр <ВклВыкл> не задан, то возвращается режим блокировки до выполнения метода. Число: 1 - заблокирован; 0 - свободен. Если при вызове метода параметр <ВклВыкл> задан, то возвращается результат выполнения метода блокировки. Число: 1 - успешно; 0 - не получилось. Параметры: <ВклВыкл> - необязательный параметр. Число: 1 - включить; 0 - выключить.
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник. ЗиУП
этот метод я отбросила изначально - он не срабатывает хотя возможно я что-то не то делаю. вот кусок кода:
Док.НайтиДокумент(ТдДок); Если Док.Блокировка()=1 Тогда // не работает Сообщ = "Заблокирован"; Иначе Сообщ = ""; Если Док.Проведен()=1 Тогда Док.СделатьНеПроведенным(); Док.УстановитьВремя(Ч,М,С); Док.Записать(); Если Док.Провести(0)=0 Тогда Сообщ = "не провелся"; КонецЕсли; Иначе Док.УстановитьВремя(Ч,М,С); Док.Записать(); КонецЕсли; глЗаписьЖурналаРегистрации("изм время обр Сжать23часа",2,2,Док.ТекущийДокумент(),2); КонецЕсли;
Цитата(sava1 @ 13.09.12, 8:13)
окрытьФорму(.
не соображу,а как потом программно закрыть форму документа?
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП) 1С Предприятие 8.3: Бух.предприятия 3.0 + самописка ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Кроме высшего образования, нужно иметь хотя бы среднее соображение
alex040269, спасибо все получилось до меня наконецто дошло, что Блокировка проверяет заблокирован ли мною объект
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП) 1С Предприятие 8.3: Бух.предприятия 3.0 + самописка ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Кроме высшего образования, нужно иметь хотя бы среднее соображение
nysysimara , в принципе не обязательно. Просто если делать Вашим способом, то никто не мешает заблокировать документ кому-то еще после того как вы проверили и до того момента, когда вы делаете запись в базу.
Хотя может вы и правы. Я не проверял.
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник. ЗиУП
sava1, мне такой вариант не подходит для того чтобы только изменить время документа, открывать форму документа - на мой взгляд, лишнее
объясню, что я пытаюсь сделать: У нас в базе ряд документов создаются в ночную смену, записываются текущим временем, т.е.последний может быть позже 23:00 (например 11.09.2012 23:56:00 другие документы,созданные на следующий день(12.09), но с датой вчера(11.09) записываются автоматически в конец дня в результате имеем ситуацию: куча документов расположены в 23:59:59 и проблемы с проведением
Хочу сделать обработку, которая в начале текущего дня все доки вчерашние во временном отрезке с23:00:00 до 23:59:59 расположит более "компактно" с малым интервалом, тем самым освободит хотя бы последние полчаса
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП) 1С Предприятие 8.3: Бух.предприятия 3.0 + самописка ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Кроме высшего образования, нужно иметь хотя бы среднее соображение
sava1, мне такой вариант не подходит У нас в базе ряд документов создаются в ночную смену, записываются текущим временем, т.е.последний может быть позже 23:00 (например 11.09.2012 23:56:00
Документы создаются последовательно, или параллельно?
Документы создаются последовательно, или параллельно?
Я наверное неточно выразилась
Цитата
ряд документов создаются в ночную смену
означает: в ночную смену работают несколько пользователей, ими создаются документы текущем временем +- полчаса принципиального значения для этих документов не имеет, главное сохранить последовательность
пока писала этот пост, решила запускать обработку только монопольно, объясню: если документ заблокирован, его невозможно переставить по времени, а значит нельзя двигать и следующие за ним,
Сообщение отредактировал nysysimara - 14.09.12, 9:08
Группа: Местный
Сообщений: 224
Из: не ту страну назвали Гондурасом
Спасибо сказали: 83 раз
Рейтинг: 0
Навскидку.
1. Ввести реквизит (возможно общий) для флага необходимости пере-позиционирования документов.
2. В ПриЗаписи() документов. 2.1. Для новых документов - сверять ДатаДок на равенствоТекущаяДата(), а ТекущееВремя() на попадание в "интервалом перепозиционирования"(23:00:00-23:59:59): если совпадает+попадает - взводить флаг необходимости пере-позиционирования(см.п.1) в единицу. 2.2. Для ранее созданных документов - сверять ДатаДок на равенствоТекущаяДата(), а ТекущийДокумент().ПолучитьВремя() на попадание в "интервалом перепозиционирования"(23:00:00-23:59:59): если совпадает+попадает - взводить флаг необходимости пере-позиционирования(см.п.1) в единицу.
3. В ПриОткрытии() ранее созданных документов. Если ( необходимости пере-позиционирования(см.п.1) взведен в единицу ) И ( ДатаДок < ТекущаяДата() ): СтатусВозврата(0) с выдачей сообщения о тотм, что документ необходимо перепозиционировать в рамках регламента (можно с координатами для связи с работниками/службами, ответственными за выполнение этого пункта регламента).
4. В описываемой обработке - после "расстановки" документов по хронологии - сбрасывать(обнулять) в них флаг необходимости пере-позиционирования(см.п.1).
Результат - гарантированное отсутствие блокиоровок при выполнении упомянутой обработки документов ("расстановки" документов по хронологии).
прим.: форс-мажорные корректировки до "расстановки" документов по хронологии - также вопрос в принципе решаемій. если надо.
add: вместо реквизита можно использовать справочник (можно динамичесский).
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!