|
Программное редактирование проведенного документа | ☑ | ||
---|---|---|---|---|
0
Блондинка_
23.05.14
✎
15:29
|
Сейчас столкнулась с такой непонятной для меня штукой. Это как бы мой косяк и я его исправлю, но просто интересно. Перед открытием у меня добавляется пару строчек из заранее установленных значений в справочнике. Там 2 строчки всего НоваяСтрока=Таблица.Добавить() и НоваяСтрока.Реквизит=РеквизитИзСправочника. Я никаких условий не добавила, что эти строки должны только один раз прописываться только в случае нового объекта и поэтому у меня там столько их понаписалось. Но вот что интересно, если документ проведен, еще строки не дописываются, хотя все действия те же отрабатываются. Почему так?
|
|||
1
salvator
23.05.14
✎
15:30
|
Код показывай ПередОткрытием
|
|||
2
Блондинка_
23.05.14
✎
15:47
|
Тут много чего, но что касается добавления строк только в конце. На всякий случай привела все, хотя не понимаю, как может быть связано.
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка) Чтение =МоиПроцедуры.ПроверкаПраваДоступа(глЗначениеПеременной("глТекущийПользователь"), "МойДокумент", "Чтение"); Если НЕ Чтение Тогда Сообщить("Пользователю запрещено чтение объекта!"); Отказ = Истина; Возврат; конецЕсли; Изменение = МоиПроцедуры.ПроверкаПраваДоступа(глЗначениеПеременной("глТекущийПользователь"), "МойДокумент", "Изменение"); Если НЕ Изменение Тогда ЭтаФорма.ТолькоПросмотр = Истина; КонецЕсли; Если ЭтотОбъект.ЭтоНовый()Тогда Ответственный=ПараметрыСеанса.ТекущийПользователь; ПредыдущийДокумент=ПоискПредыдущегоДокумента(); Если НЕ ПредыдущийДокумент=Неопределено и ПредыдущийДокумен.Проверен=Ложь Тогда Сообщить("Новый документ не будет создан. Предыдущий не проверен!"); Отказ=Истина; КонецЕсли; КонецЕсли; Если ПараметрыСеанса.ТекущийПользователь<>Ответственный Тогда ЭлементыФормы.Проверен.Доступность=Ложь; ЭлементыФормы.Дата.Доступность=Ложь; ЭлементыФормы.Менеджер.Доступность=Ложь; ЭлементыФормы.КонтрагентыИРезультаты.Колонки.НаправитьМенеджеру.Доступность=Ложь; ЭлементыФормы.Ответственный.Доступность=Ложь; КонецЕсли; Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | ПричиныКонтакта.Наименование |ИЗ | Справочник.ПричиныКонтакта КАК ПричиныКонтакта; ИмеющиесяПричиныКонтакта=Запрос.Выполнить().Выгрузить(); Если ИмеющиесяПричиныКонтакта.Количество()<>0 Тогда Для каждого причина из ИмеющиесяПричиныКонтакта Цикл НоваяСтрокаНастройки=НастройкиТекущейТаблицы.Добавить(); НоваяСтрокаНастройки.ПричинаКонтакта=причина.наименование; КонецЦикла; КонецЕсли; КонецПроцедуры |
|||
3
salvator
23.05.14
✎
15:52
|
А отладчик что на этот счет говорит?
|
|||
4
Блондинка_
23.05.14
✎
15:55
|
Отладчик все отлично проходит одинаково во всех случаях, только в случае проведенного документа после открытия новых строк не появляется.
|
|||
5
salvator
23.05.14
✎
16:02
|
А после проведения эти строки не удаляются никак?
Посмотри документ без открытия, например групповой обработкой спр и док-тов, имеются ли в проведенном документе эти строки? |
|||
6
Блондинка_
27.05.14
✎
16:56
|
(5) Имеются, причем в каждом документе по-разному, ну смотря сколько раз я их открывала.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |