Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/141: Рейтинг темы: голосов - 141, средняя оценка - 4.69
Юрий
0 / 0 / 0
Регистрация: 02.06.2011
Сообщений: 4
1

Изменение реквизитов в дукументах, помечаемых на удаление

27.09.2009, 11:39. Просмотров 25520. Ответов 19
Метки нет (Все метки)

Всем добрый день!Возникла проблема! Нужна изменить реквизит в документе, который помечается на удаление. Через глобальный модуль и предопред.процу ПриУдаленииДокумента не прокатывает - ругается когда пытаюсь записывать документ с измененным реквизитом:
Док.Записать();
{Глобальный модуль(5365)}: Объект заблокирован
Сам код такой:
Док=СоздатьОбъект("Документ.СчетНаОплату"); //ЦБОУ
Док.НайтиДокумент(Докум);
Док.Оплата=Число(0);
Док.Записать();
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2009, 11:39
Ответы с готовыми решениями:

Автоматическое изменение значений реквизитов документа
У документа имеются следующий реквизиты: фильм, зал, стоимость, вместимость. При изменении...

Программное изменение дополнительных свойств и реквизитов объектов
Здравствуйте! 1С 8.2 УТ 11.0, есть доп. реквизит Сезон, программно не заполняется Запрос =...

БП 3.0 Групповое изменение реквизитов.Приведение все в единый вид. Сохранение размеров в номенклатуре
Нужно почистить номенклатуру. Сделал отбор что бы выделить отдельную папку. Теперь нужно все...

Удаление Реквизитов
Помогите разобраться в чем проблема? Вот код &НаСервере Процедура СоздатьПолеНаСервере()...

Изменение значений реквизитов документа по условию
есть форма, есть реквизит со ссылкой на документ,пользователь выбирает "марку привода А",и...

19
vbs
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
27.09.2009, 13:49 2
Если записываешь прямо из документа - незачем делать следующее
Док=СоздатьОбъект("Документ.СчетНаОплату"); //ЦБОУ
Док.НайтиДокумент(Докум);
Если из внешней обработки - проверь, не открыт ли при этом изменяемый документ
0
Юрий
0 / 0 / 0
Регистрация: 02.06.2011
Сообщений: 4
27.09.2009, 14:07 3
Нет Док.Записать() у меня находится в Глобальном модуле в процедуре ПриУдаленииДокумента(). То есть я хочу, чтобы когда документ удаляестя - менялся его реквезит.
0
tyomzy
0 / 0 / 0
Регистрация: 21.09.2009
Сообщений: 5
01.10.2009, 10:43 4
Цитата Сообщение от Юрий
Всем добрый день!Возникла проблема! Нужна изменить реквизит в документе, который помечается на удаление. Через глобальный модуль и предопред.процу ПриУдаленииДокумента не прокатывает - ругается когда пытаюсь записывать документ с измененным реквизитом:
Док.Записать();
{Глобальный модуль(5365)}: Объект заблокирован
Сам код такой:
Док=СоздатьОбъект("Документ.СчетНаОплату"); //ЦБОУ
Док.НайтиДокумент(Докум);
Док.Оплата=Число(0);
Док.Записать();
Не вижу необходимости в Док=СоздатьОбъект("Документ.СчетНаОплату");
получается что система его уже открыла для обработки (функция приадалении наала с ним работать), а ты снова его пытаешся открыть и записать...

Функция глПриУдаленииДокумента(Докум, Предупредить = 1) Экспорт

в переменную Докум уже передается твой документ, с которым ты проводиш операцию удаления, сделай проверку
Если (Докум.Вид() = "СчетНаОплату") тогда ...
0
01.10.2009, 10:43
Юрий
0 / 0 / 0
Регистрация: 02.06.2011
Сообщений: 4
01.10.2009, 14:05 5
Цитата Сообщение от Lionzi
Не вижу необходимости в Док=СоздатьОбъект("Документ.СчетНаОплату");
получается что система его уже открыла для обработки (функция приадалении наала с ним работать), а ты снова его пытаешся открыть и записать...

Функция глПриУдаленииДокумента(Докум, Предупредить = 1) Экспорт

в переменную Докум уже передается твой документ, с которым ты проводиш операцию удаления, сделай проверку
Если (Докум.Вид() = "СчетНаОплату") тогда ...

Я согласен с тобой, правда на половину, я пробовал работать с переменной Докум - в этом случае система ругается на строкчку Докум.Оплата=1, выдает сообщение, что документ не выбран!!!!
0
Hryv
0 / 0 / 0
Регистрация: 24.07.2008
Сообщений: 658
01.10.2009, 15:09 6
Юрий, я для чего это надо?
Может найдется решение в обход
0
vytfyt
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
01.10.2009, 15:18 7
кхе-кхе...
Действительно, объясните, для чего все это требуется?
Сделать то можно все что угодно, даже обойти блокировку документа...
0
Юрий
0 / 0 / 0
Регистрация: 02.06.2011
Сообщений: 4
01.10.2009, 16:00 8
Цитата Сообщение от Hryv
Юрий, я для чего это надо?
Может найдется решение в обход
Естественно,можно сделать все проще = сделать кнопочку удаления в журнале, написать реакцию и не париться, но сам понимаешь, бухгалтера могут по привычке нажать привычную кнопку удаления...А всё это нужно для следующего: Есть документ куда бухи вбивают счета, и есть документ, где делается оплата по этим счетам, так вот чтобы была чёткая взаимосвязь между этими документа - это и нужно.Я кстати пол-интернета облазил, народ сталкивался с такой же проблемой - но решения предложено не было. Писали, что во время удаления документа - происходит его блокировка и сделать ниче нельзя!! Предлагают сделать обработку ожидания, но так заморачиваться я не хочу.



Цитата Сообщение от vitfil
кхе-кхе...
Действительно, объясните, для чего все это требуется?
Сделать то можно все что угодно, даже обойти блокировку документа...

А как обойти блокировку? =)
0
Hryv
0 / 0 / 0
Регистрация: 24.07.2008
Сообщений: 658
01.10.2009, 16:59 9
Цитата Сообщение от Юрий
Есть документ куда бухи вбивают счета, и есть документ, где делается оплата по этим счетам, так вот чтобы была чёткая взаимосвязь между этими документа - это и нужно
Как вариант: нельзя ли взаимосвязь настроить так, чтобы при удалении менялся реквизит не в удаляемом документе, а в связанном с ним
Или еще так: в документе, связанном с удаляемым сначаля проверять пометку на удаление первого, а потом уже разные реквизиты

Я просто не знаю как именно и на сколько сложно устроена система, но впринципе переделать можно все что угодно
0
Юрий
0 / 0 / 0
Регистрация: 02.06.2011
Сообщений: 4
02.10.2009, 12:41 10
Цитата Сообщение от Hryv
Как вариант: нельзя ли взаимосвязь настроить так, чтобы при удалении менялся реквизит не в удаляемом документе, а в связанном с ним
Или еще так: в документе, связанном с удаляемым сначаля проверять пометку на удаление первого, а потом уже разные реквизиты

Я просто не знаю как именно и на сколько сложно устроена система, но впринципе переделать можно все что угодно

Попробую объяснить: есть документ СЧЕТ(не тот, который встроен в конфигурацию), в нем есть реквизит оплата, который равен 1 если счет оплачен и 0 в противном случае, есть документ "Списание",в котором оплачивается счет. 1 из его реквизитов которого является дукумент СЧЕТ,Если он подцеплен, то при проведении оплаты, в документе счет реквизиту оплата присваивается 1. В соответствии с этим может получится ситуация: Бух удаляет счет, в документе оплата,в котором подвязан этот счет соответствующий реквизит очищается,однако реквизит оплата в счете =1 (как будто счет оплачен,хотя он удален),далее если пометка удаления снимается-получаем необъективную инфу.Вот...понимаю что звучит наверно все загонно...ну как смог...)) блин,а ещё педовское образование)))
0
umkmowm181538
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
02.10.2009, 17:38 11
А зачем удалять оплаченный счет?
0
puh14
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
02.10.2009, 18:05 12
Если он подцеплен, то при проведении оплаты, в документе счет реквизиту оплата присваивается 1. В соответствии с этим может получится ситуация: Бух удаляет счет, в документе оплата,в котором подвязан этот счет соответствующий реквизит очищается,однако реквизит оплата в счете =1 (как будто счет оплачен,хотя он удален),далее если пометка удаления снимается-получаем необъективную инфу.
Тогда проще ловить в процедуре отмена проведения с выдачей предупреждения о документе движения оплаты. Вообще-то в отчетах проще исходить из данных регистров, чем документов. Косяки сразу видны. Например у меня при изменении доков задним числом некоторые ресурсы выходят в минус и я их сразу отлавливаю и даю по мозгам. Если не пользуешь регистр, то простейший запрос тебе позволит выбрать сопутствующие документы. Если где-то что-то есть, то выдаешь ссылки и пока не поправят руками все идут лесом.
0
vbs
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
03.10.2009, 00:33 13
Цитата Сообщение от puh14
некоторые ресурсы выходят в минус и я их сразу отлавливаю и даю по мозгам
ресурсам по мозгам ? Жесткий подход
0
Юрий
0 / 0 / 0
Регистрация: 02.06.2011
Сообщений: 4
04.10.2009, 10:22 14
Цитата Сообщение от puh14
Тогда проще ловить в процедуре отмена проведения с выдачей предупреждения о документе движения оплаты. Вообще-то в отчетах проще исходить из данных регистров, чем документов. Косяки сразу видны. Например у меня при изменении доков задним числом некоторые ресурсы выходят в минус и я их сразу отлавливаю и даю по мозгам. Если не пользуешь регистр, то простейший запрос тебе позволит выбрать сопутствующие документы. Если где-то что-то есть, то выдаешь ссылки и пока не поправят руками все идут лесом.

Дркумент не проводится!))) Соответственно, нет отмены проведения)



Цитата Сообщение от unknown181538
А зачем удалять оплаченный счет?

Очень справедливый вопрос! Честно говоря даже не знаю что сказать!=) Просто хотелось предусмотреть все возможные косяки! А вообще может и правда стоит запретить удалять такие документы! Спасибо за мысль!=))
0
umkmowm181538
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
04.10.2009, 23:31 15
Удаление оплаченного счета это и есть возможный косяк. Если случай исключительный, и пользователь уверен, то пусть поправит реквизит руками. Например, наверняка, оплату надо привязать к другому счету.
0
vytfyt
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
05.10.2009, 09:43 16
Естественно,можно сделать все проще = сделать кнопочку удаления в журнале, написать реакцию и не париться, но сам понимаешь, бухгалтера могут по привычке нажать привычную кнопку удаления...
Это обходится установкой FormEx и отлавливанием нажатия кнопки Del. В самой процедуре делайте что угодно.
Как обойти блокировку? Работайте напрямую с БД и будет вам счастье. Но в конкретно этом случае нет необходимости обходить блокировку. Нужно просто воспользоваться FormEx.
0
Koo
0 / 0 / 0
Регистрация: 22.04.2010
Сообщений: 38
05.10.2009, 10:41 17
без внешних компонент. завести справочник туда писать с каким документом производить действие. при выходе из системы редактировать документы и удалять элементы справочника.
0
Юрий
0 / 0 / 0
Регистрация: 02.06.2011
Сообщений: 4
05.10.2009, 11:31 18
Блин, столько вариантов! Всем спасибо за ответы и критику!!! Очень мне помогли!!!!!!
0
vytfyt
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
05.10.2009, 18:12 19
без внешних компонент. завести справочник туда писать с каким документом производить действие. при выходе из системы редактировать документы и удалять элементы справочника.
А до выхода из системы может произойти несколько часов...
А еще при выходе из системы одним пользователем, другой может заблокировать этот документ...
А еще до выхода из системы могут снять пометку на удаление с документа...
Еще с десяток вариантов привести?
Никогда не оставляйте на потом то, что НЕОБХОДИМО сделать в настоящий миг... Потома может и неступить!
0
Koo
0 / 0 / 0
Регистрация: 22.04.2010
Сообщений: 38
06.10.2009, 04:05 20
про косяки FormEx то же можно с десяток примеров привести
0
06.10.2009, 04:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2009, 04:05

Изменение реквизитов справочника при проведении документа
Доброго времени суток! Прошу помочь, нужно изменить реквизиты элементов справочника...

Запрос 1С. Изменение значений реквизитов документа по выбранному значению.
Подскажите пожалуйста, необходимо в документе Оплата Монтажа при выборе Заказа подставлялось Услуга...

Заполнение реквизитов строки ТЧ документа заченями реквизитов выбранного элемента
Здравствуйте. Запнулся вроде бы на простой задаче - забыл как делается... Суть задачи: есть в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru