|
Пропадает кнопка Заполнить в управляемых формах | ☑ | ||
---|---|---|---|---|
0
Velber
11.03.14
✎
09:49
|
Написал внешнюю обработку табличной части под управляемые формы.
Обработка работает нормально, но после нажатия на кнопку вызова обработки, кнопка "Заполнить" пропадает и появляется, если форму повторно открыть. 1С:Предприятие 8.3 (8.3.4.437) Бухгалтерия предприятия, редакция 3.0 (3.0.29.8) |
|||
1
NcSteel
11.03.14
✎
09:49
|
Проблема в самой обработке.
|
|||
2
Wobland
11.03.14
✎
09:51
|
(0) как ты этого добился?
|
|||
3
Velber
11.03.14
✎
09:51
|
Ок, в чем может быть проблема?
|
|||
4
NcSteel
11.03.14
✎
09:52
|
Видимо видимость какого либо элемента на форме меняет обработка. За это надо руки отрывать.
|
|||
5
Velber
11.03.14
✎
09:53
|
В обработку добавил форму и в ней добавил процу
&НаКлиенте Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт //Спросим у пользователя разрешение на продолжение обработки Режим = РежимДиалогаВопрос.ДаНет; Текст = "Текущие данные документа будут заменены новыми без возможности восстановления. |Продолжить?"; Ответ = Вопрос(Текст, Режим, 0); Если Ответ = КодВозвратаДиалога.Да Тогда //Если пользователь дал разрешение на продолжение, то начнем перебирать все //документы, у которых мы планируем заполнить табличную часть Для каждого Элемент из ОбъектыНазначенияМассив Цикл //Зададим ключ поиска документа, из которого вызвана данная обработка, //чтобы получить ссылку на редактирумый документ в удобном виде для //функции ОткрытьФорму() КлючПоиска = Новый Структура("Ключ", Элемент); //Но нам не надо открывать новую форму (окно) для изменяемого документа, а //Нам надо все изменения показать в уже открытых у клиента окнах Окна = ПолучитьОкна(); Для каждого Окно из Окна Цикл //Окно изменяемого документа будет точно не основным, а вспомогательным, поэтому //сразу пропускаем основное окно, а далее идем на не очень хороший способ поиска открытого окна //изменяемого документа. Мы просто переберем все окна, а в заголовке, которых будет встречаться //Наименование, номер и дата нужного документа - будем изменять Если НЕ Окно.Основное И Найти(Окно.Заголовок, Элемент) Тогда //Передадим ключ поиска (можно сказать ссылку на объект) и данные о найденном открытом окне //в функцию ОткрытьФорму() //Код находится в цикле на тот случай, если открытых окон изменяемого документа больше одного Форма = ОткрытьФорму("Документ.ОтчетПроизводстваЗаСмену.Форма.ФормаДокумента",КлючПоиска,,,Окно); //Далее мы получаем объект только, что повторно открытой формы и помещаем её в переменную //В объекте содержатся все реквизиты (элементы) формы НовыйОбъект = Форма.Объект; //Мы помещаем объект формы в переменную, //так как должны передать её в процедуру на сервере, //где нельзя изменять объект формы, зато можно править переменную содержащую его ЗаполнитьОбъект(НовыйОбъект); //После выполнения процедуры на сервере мы получаем изменную переменную НовыйОбъект, //которую необходимо передать в уже полученную нами форму КопироватьДанныеФормы(НовыйОбъект, Форма.Объект); КонецЕсли; КонецЦикла; КонецЦикла; КонецЕсли; КонецПроцедуры |
|||
6
NcSteel
11.03.14
✎
09:55
|
Форма = ОткрытьФорму("Документ.ОтчетПроизводстваЗаСмену.Форма.ФормаДокумента",КлючПоиска,,,Окно);
в этом и проблема. А теперь закоментирую и проверь. |
|||
7
Velber
11.03.14
✎
09:56
|
В функции СведенияОВнешнейОбработке вызов сделал ВызовКлиентскогоМетода.
ДобавитьКоманду(ТаблицаКоманд, до_Синоним, до_ИмяМакета, "ВызовКлиентскогоМетода", Истина); |
|||
8
Velber
11.03.14
✎
09:57
|
(6) если эту строку закоментить, нельзя будет получить форму и объект соответственно и тогда дальше смысла работы не будет(
|
|||
9
Wobland
11.03.14
✎
09:59
|
с таким обилием комментариев даже стесняюсь спросить: на зачем это всё?
|
|||
10
Velber
11.03.14
✎
09:59
|
(6) Если после этой строки все комментить, то тогда действительно не пропадает кнопка "Заполнить".
|
|||
11
Velber
11.03.14
✎
10:00
|
(9)Пример реализации, просто с инфостарта брал.
|
|||
12
Wobland
11.03.14
✎
10:01
|
(11) нене, вопрос был "на зачем?"
|
|||
13
Новиков
11.03.14
✎
10:02
|
3,14стец полнейший, товарищи!
|
|||
14
Новиков
11.03.14
✎
10:03
|
код в (5) нужно Ctrl+A, del, Ctrl+S.
|
|||
15
Velber
11.03.14
✎
10:05
|
(14) Ок, есть альтернатива?
|
|||
16
Новиков
11.03.14
✎
10:08
|
(15) Естественно есть. Воспользуйся штатным функционалом БСП, и не би мозги себе, и людям ;)
|
|||
17
Velber
11.03.14
✎
10:14
|
(16) http://its.1c.ru/db/bspdoc#content:200:1 я вычитал всю статью, но так и не понял как сделать.
|
|||
18
Новиков
11.03.14
✎
10:16
|
(17) ты в каком сейчас типовом мире? какой конфы?
|
|||
19
Новиков
11.03.14
✎
10:16
|
И какая версия БСП там в твоем мире ;)
|
|||
20
Velber
11.03.14
✎
10:27
|
(20) Демонстрационная конфигурация "Библиотека стандартных подсистем", редакция 2.2 (2.2.1.35) (http://v8.1c.ru/ssl)
Copyright © ООО "1C", 2009-2013. Все права защищены (http://www.1c.ru) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |