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

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

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

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

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

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

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

Изменение/заполнение реквизитов справочника 1С средствами C#
Добрый день! Пишу свою программу на C# для управления справочником 1С. Сейчас бьюсь над...

19
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
01.10.2009, 10:43 4
Цитата Сообщение от Юрий
Всем добрый день!Возникла проблема! Нужна изменить реквизит в документе, который помечается на удаление. Через глобальный модуль и предопред.процу ПриУдаленииДокумента не прокатывает - ругается когда пытаюсь записывать документ с измененным реквизитом:
Док.Записать();
{Глобальный модуль(5365)}: Объект заблокирован
Сам код такой:
Док=СоздатьОбъект("Документ.СчетНаОплату"); //ЦБОУ
Док.НайтиДокумент(Докум);
Док.Оплата=Число(0);
Док.Записать();
Не вижу необходимости в Док=СоздатьОбъект("Документ.СчетНаОплату");
получается что система его уже открыла для обработки (функция приадалении наала с ним работать), а ты снова его пытаешся открыть и записать...

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

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

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

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

Я согласен с тобой, правда на половину, я пробовал работать с переменной Докум - в этом случае система ругается на строкчку Докум.Оплата=1, выдает сообщение, что документ не выбран!!!!
0
0 / 0 / 0
Регистрация: 24.07.2008
Сообщений: 658
01.10.2009, 15:09 6
Юрий, я для чего это надо?
Может найдется решение в обход
0
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
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
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
02.10.2009, 17:38 11
А зачем удалять оплаченный счет?
0
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
02.10.2009, 18:05 12
Если он подцеплен, то при проведении оплаты, в документе счет реквизиту оплата присваивается 1. В соответствии с этим может получится ситуация: Бух удаляет счет, в документе оплата,в котором подвязан этот счет соответствующий реквизит очищается,однако реквизит оплата в счете =1 (как будто счет оплачен,хотя он удален),далее если пометка удаления снимается-получаем необъективную инфу.
Тогда проще ловить в процедуре отмена проведения с выдачей предупреждения о документе движения оплаты. Вообще-то в отчетах проще исходить из данных регистров, чем документов. Косяки сразу видны. Например у меня при изменении доков задним числом некоторые ресурсы выходят в минус и я их сразу отлавливаю и даю по мозгам. Если не пользуешь регистр, то простейший запрос тебе позволит выбрать сопутствующие документы. Если где-то что-то есть, то выдаешь ссылки и пока не поправят руками все идут лесом.
0
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
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
04.10.2009, 23:31 15
Удаление оплаченного счета это и есть возможный косяк. Если случай исключительный, и пользователь уверен, то пусть поправит реквизит руками. Например, наверняка, оплату надо привязать к другому счету.
0
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
05.10.2009, 09:43 16
Естественно,можно сделать все проще = сделать кнопочку удаления в журнале, написать реакцию и не париться, но сам понимаешь, бухгалтера могут по привычке нажать привычную кнопку удаления...
Это обходится установкой FormEx и отлавливанием нажатия кнопки Del. В самой процедуре делайте что угодно.
Как обойти блокировку? Работайте напрямую с БД и будет вам счастье. Но в конкретно этом случае нет необходимости обходить блокировку. Нужно просто воспользоваться FormEx.
0
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
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
05.10.2009, 18:12 19
без внешних компонент. завести справочник туда писать с каким документом производить действие. при выходе из системы редактировать документы и удалять элементы справочника.
А до выхода из системы может произойти несколько часов...
А еще при выходе из системы одним пользователем, другой может заблокировать этот документ...
А еще до выхода из системы могут снять пометку на удаление с документа...
Еще с десяток вариантов привести?
Никогда не оставляйте на потом то, что НЕОБХОДИМО сделать в настоящий миг... Потома может и неступить!
0
0 / 0 / 0
Регистрация: 22.04.2010
Сообщений: 38
06.10.2009, 04:05 20
про косяки FormEx то же можно с десяток примеров привести
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.10.2009, 04:05

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

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

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


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

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

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