|
Обработка заполнения табличной части 1С 8 (Создание) | ☑ | ||
---|---|---|---|---|
0
ElidaDV
18.05.15
✎
16:33
|
Товарищи добрый день.
Задумал сделать обработку заполнения табличной части[ИнвентарьИХозяйственныеПринадлежности] документа Передача материалов в эксплуатацию на основании документа перемещения товаров Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспорт ФормаВыбораПеремещения = ПолучитьФорму("ФормаДокумента"); ФормаВыбораПеремещения.ОткрытьМодально(); ТабличнаяЧасть = Объект[Документы.ПередачаМатериаловВЭксплуатацию.ИнвентарьИХозяйственныеПринадлежности]; Если НЕ ЗначениеЗаполнено(ДокументПеремещения) Тогда Сообщить("Не выбран документ перемещения"); Возврат; КонецЕсли; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ДокументПеремещения",ДокументПеремещения); Запрос.Текст = "ВЫБРАТЬ | ПеремещениеТоваровТовары.Номенклатура, | ПеремещениеТоваровТовары.Количество |ИЗ | Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары |ГДЕ | ПеремещениеТоваровТовары.Ссылка = &ДокументПеремещения"; Результат = Запрос.Выполнить().Выгрузить(); ТабличнаяЧасть.Очистить(); Для Каждого ЭлементРезультата из Результат Цикл НоваяСтрокаТЧ = ТабличнаяЧасть.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрокаТЧ,ЭлементРезультата); Объект.ЗаполнитьСчетаУчетаВСтрокеТабЧасти(НоваяСтрокаТЧ, ИмяТабличнойЧасти, Истина); КонецЦикла; КонецПроцедуры ***************** После подключения выдает: Заполнение ТЧ не произведено! Метод объекта не обнаружен (Инициализировать) ***************** где косяк подскажите? Пробовал писать так: Процедура Инициализировать(Объект, ИмяТабличнойЧасти = Неопределено, ТабличноеПолеОбъекта = Неопределено) Экспорт КонецПроцедуры Разницы не какой |
|||
1
asady
18.05.15
✎
16:36
|
(0) платформа? конфа? релиз?
|
|||
2
Garykom
гуру
18.05.15
✎
16:40
|
(1) тут! все! телепаты!
|
|||
3
ElidaDV
18.05.15
✎
16:41
|
упс, у нас просто уже 23.40....
БП 2.0 (последний релиз) Платформа: 8.3.5 |
|||
4
Garykom
гуру
18.05.15
✎
16:45
|
95% что с правами косяки
|
|||
5
ElidaDV
18.05.15
✎
16:49
|
(4) Запускаю под админом, собственно я создал читстую базу с одним пользователем!
|
|||
6
Garykom
гуру
18.05.15
✎
16:49
|
(4) сорри был не прав, хотя... есть ли права на правку конфы?
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=616705&threadtype=0 |
|||
7
ElidaDV
18.05.15
✎
16:55
|
(6) конфа дописывается походу необходимости.
|
|||
8
Garykom
гуру
18.05.15
✎
17:00
|
(7) тогда проверить если ли эта механизма для "документа Передача материалов в эксплуатацию"
если нет добавить |
|||
9
ElidaDV
18.05.15
✎
17:04
|
(8) Что проверить???
Обработку подключаю как внешнюю обработку заполнения табличных частей. |
|||
10
ВРедная
18.05.15
✎
17:05
|
(9) Процедура Инициализировать в модуле объекта или формы?
|
|||
11
Garykom
гуру
18.05.15
✎
17:07
|
(9) как бы код конфы то должен вызвать по кнопочке вашу экпортную процедуру в вашей внешней обработке
а если для объекта этого вызова нету? ну не сделали... |
|||
12
ElidaDV
18.05.15
✎
17:08
|
(10) Процедура
Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПоле) Экспорт; в модуле формы |
|||
13
ElidaDV
18.05.15
✎
17:15
|
Перенес процедуру в модуль объекта. Заработало.
Новый косяк!!!! Нажимаем кнопку заполнить, открывается список документов перемещения, выбираем любой, он закрывается. 1с выдает сообщение: не выбран документ перемещения. |
|||
14
ElidaDV
18.05.15
✎
17:16
|
Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспорт
ФормаВыбораПеремещения = Документы.ПеремещениеТоваров.ПолучитьФормуВыбора(); ФормаВыбораПеремещения.Заголовок = "Выберите документ перемещения для заполнения документа"; ФормаВыбораПеремещения.РежимВыбора = Истина; //ФормаВыбораПеремещения.Отбор.Организация.Использование = Истина; ФормаВыбораПеремещения.ОткрытьМодально(); ТабличнаяЧасть = Объект[ИмяТабличнойЧасти]; Если НЕ ЗначениеЗаполнено(ДокументПеремещения) Тогда Сообщить("Не выбран документ перемещения"); Возврат; КонецЕсли; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ДокументПеремещения",ДокументПеремещения); Запрос.Текст = "ВЫБРАТЬ | ПеремещениеТоваровТовары.Номенклатура, | ПеремещениеТоваровТовары.Количество |ИЗ | Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары |ГДЕ | ПеремещениеТоваровТовары.Ссылка = &ДокументПеремещения"; Результат = Запрос.Выполнить().Выгрузить(); ТабличнаяЧасть.Очистить(); Для Каждого ЭлементРезультата из Результат Цикл НоваяСтрокаТЧ = ТабличнаяЧасть.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрокаТЧ,ЭлементРезультата); Объект.ЗаполнитьСчетаУчетаВСтрокеТабЧасти(НоваяСтрокаТЧ, ИмяТабличнойЧасти, Истина); КонецЦикла; КонецПроцедуры Щас то чего не так? |
|||
15
Garykom
гуру
18.05.15
✎
17:28
|
(14) мда...
|
|||
16
ElidaDV
18.05.15
✎
17:29
|
ВСЕ ЗАРАБОТАЛО!!!!!!
ФормаВыбораПеремещения = ПолучитьФорму("Форма"); //ФормаВыбораПеремещения = Документы.ПеремещениеТоваров.ПолучитьФормуВыбора(); //ФормаВыбораПеремещения.Заголовок = "Выберите документ перемещения для заполнения документа"; //ФормаВыбораПеремещения.РежимВыбора = Истина; //ФормаВыбораПеремещения.Отбор.Организация.Использование = Истина; ФормаВыбораПеремещения.ОткрытьМодально(); ТабличнаяЧасть = Объект[ИмяТабличнойЧасти]; Если НЕ ЗначениеЗаполнено(ДокументПеремещения) Тогда Сообщить("Не выбран документ перемещения"); Возврат; КонецЕсли; |
|||
17
ElidaDV
18.05.15
✎
17:31
|
Дельный совет был (9) Спасибо Вредной))
|
|||
18
Garykom
гуру
18.05.15
✎
17:36
|
(16) не подскажете что это?
ФормаВыбораПеремещения = ПолучитьФорму("Форма"); и ФормаВыбораПеремещения.ОткрытьМодально(); ? |
|||
19
ElidaDV
18.05.15
✎
17:53
|
(18)
1. используя модальное открытие(пока форма открыта все остальные окна 1С недоступны), потому что при таком способе открытия дальнейший наш код в процедуре Инициализировать выполняться не будет, пока пользователь не закроет форму. это к ФормаВыбораПеремещения.ОткрытьМодально(); 2. Нам необходимо что бы пользователь выбрал документ Перемещение товаров, поэтому напишем код открытия формы выбора документа. Для начала получим эту форму в переменную, используя метод внешней обработки ПолучитьФорму(<Форма>, <Владелец>, <КлючУникальности>). Нам достаточно заполнить только первый параметр этого метода, передав туда строку с именем нашей формы. Под нашей формой подразумевается форма добавленая мной во внешнюю обработку, в этой форме поле с реквизитом Данные: ДокументПеремещения. ТипЗначения (СправочникСсылка.ДокументПеремещения) Про это вопрос был? |
|||
20
Garykom
гуру
18.05.15
✎
17:57
|
(19) да терь понял, я то думал используется форма выбора доков перемещения из конфы, а не из обработки своя добавленная
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |