|
Как получить доступ к объекту для его редактирования УФ 1С 8.2 | ☑ | ||
---|---|---|---|---|
0
maslov_ilya
16.12.14
✎
18:09
|
Здравствуйте! Подскажите, пожалуйста, как правильно написать обращение.
Необходимо получить доступ к документу для возможности отсортировать его табличную часть и распечатать. Вот кусок процедуры, описанной в модуле менеджера Документа "РеализацияТовара" Не могу никак понять, как мне получить доступ к данному документу Процедура ВыполнитьСортировку() Экспорт ОбъектНазначения = Документы.РеализацияТоваров.ПолучитьСсылку().ПолучитьОбъект(); // Необходимо получить доступ к объекту для его изменения ТаблицаТовары = Документы.РеализацияТоваров.ПолучитьСсылку().Товары.Выгрузить(); // Необходимо получить таблицу для дальнейшей сортировки ТаблицаТовары.Колонки.Добавить("ИндексСортировки"); СписокНоменклатуры = ТаблицаТовары.ВыгрузитьКолонку("Номенклатура"); ВидСортировки = ОбъектНазначения.МетодСортировки; // реквизит документа, в котором пользователь выбирает метод, // при отладке в переменную ВидСортировки ничего не записывается (Значение - Не определено) ........................................ Операторы сортировки ........................................ ОбъектНазначения.Товары.Загрузить(ТаблицаТовары); // Здесь соответственно тоже ошибка, т.к. нет доступа к документу ОбъектНазначения.Записать(); // аналогично, ошибка, пишет метод Записать() не обнаружен |
|||
1
Куро
16.12.14
✎
18:18
|
Процедура Печать(ТабДок, Ссылка) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать) Макет = Документы.РеализацияТоваров.ПолучитьМакет("Печать"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваров.Дата, | РеализацияТоваров.Номер, | РеализацияТоваров.ТаблицаТовары.( | НомерСтроки, | Наименование | ) |ИЗ | Документ.РеализацияТоваров КАК РеализацияТоваров |ГДЕ | РеализацияТоваров.Ссылка В (&Ссылка)"; Запрос.Параметры.Вставить("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); Шапка = Макет.ПолучитьОбласть("Шапка"); ОбластьТаблицаТоварыШапка = Макет.ПолучитьОбласть("ТаблицаТоварыШапка"); ОбластьТаблицаТовары = Макет.ПолучитьОбласть("ТаблицаТовары"); ТабДок.Очистить(); ВставлятьРазделительСтраниц = Ложь; Пока Выборка.Следующий() Цикл Если ВставлятьРазделительСтраниц Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ТабДок.Вывести(ОбластьЗаголовок); Шапка.Параметры.Заполнить(Выборка); ТабДок.Вывести(Шапка, Выборка.Уровень()); ТабДок.Вывести(ОбластьТаблицаТоварыШапка); ВыборкаТаблицаТовары = Выборка.ТаблицаТовары.Выбрать(); Пока ВыборкаТаблицаТовары.Следующий() Цикл ОбластьТаблицаТовары.Параметры.Заполнить(ВыборкаТаблицаТовары); ТабДок.Вывести(ОбластьТаблицаТовары, ВыборкаТаблицаТовары.Уровень()); КонецЦикла; ВставлятьРазделительСтраниц = Истина; КонецЦикла; //}} КонецПроцедуры |
|||
2
Господин ПЖ
16.12.14
✎
18:18
|
>Документы.РеализацияТоваров.ПолучитьСсылку()
у вас его нет |
|||
3
Куро
16.12.14
✎
18:18
|
и сортируй как угодно
|
|||
4
maslov_ilya
16.12.14
✎
18:38
|
(2) Пробовал так. В таком случае ошибка в строке:
ОбъектНазначения.Записать(); Ошибка: Метод объекта не обнаружен (Записать). |
|||
5
maslov_ilya
16.12.14
✎
18:40
|
(1) извините не понял, как представленный вами код из конструктора печати мне поможет.
Собственно вот как у меня сейчас выглядет код печати: Процедура Печать(ТабДок, Ссылка) Экспорт ВыполнитьСортировку(); // ЭТА ПРОЦЕДУРА должна сортировать Макет = Документы.РеализацияТоваров.ПолучитьМакет("Печать"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваров.Дата, | РеализацияТоваров.Контрагент, | РеализацияТоваров.Номер, | РеализацияТоваров.Товары.( | НомерСтроки, | КодТовара, | Номенклатура, | Количество, | Цена, | Сумма | ) |ИЗ | Документ.РеализацияТоваров КАК РеализацияТоваров |ГДЕ | РеализацияТоваров.Ссылка В (&Ссылка)"; Запрос.Параметры.Вставить("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); Шапка = Макет.ПолучитьОбласть("Шапка"); ОбластьТоварыШапка = Макет.ПолучитьОбласть("ТоварыШапка"); ОбластьТовары = Макет.ПолучитьОбласть("Товары"); ОбластьИтог = Макет.ПолучитьОбласть("Всего"); ТабДок.Очистить(); ВставлятьРазделительСтраниц = Ложь; Пока Выборка.Следующий() Цикл Если ВставлятьРазделительСтраниц Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ТабДок.Вывести(ОбластьЗаголовок); Шапка.Параметры.Заполнить(Выборка); ТабДок.Вывести(Шапка, Выборка.Уровень()); ТабДок.Вывести(ОбластьТоварыШапка); ВыборкаТовары = Выборка.Товары.Выбрать(); СуммаИтог=0; Пока ВыборкаТовары.Следующий() Цикл ОбластьТовары.Параметры.Заполнить(ВыборкаТовары); ТабДок.Вывести(ОбластьТовары, ВыборкаТовары.Уровень()); СуммаИтог = СуммаИтог + ВыборкаТовары.Сумма; КонецЦикла; ОбластьИтог.Параметры.ВсегоПоДокументу = СуммаИтог; ТабДок.Вывести(ОбластьИтог); ВставлятьРазделительСтраниц = Истина; КонецЦикла; КонецПроцедуры |
|||
6
Господин ПЖ
16.12.14
✎
18:41
|
(4) модуль менеджера - это static класса ... никакой ссылки на экземпляр по умолчанию как в модуле объекта там быть не может по определению...
и передавать вы туда нихрена не передаете >Документы.РеализацияТоваров.ПолучитьСсылку() получили по сути "ссылку нового" и сидим довольные |
|||
7
maslov_ilya
16.12.14
✎
18:45
|
(6) Ясно. Спасибо. Но вопрос открыт, как же мне тогда получить ссылку на документ, чтобы его отредактировать?
|
|||
8
Господин ПЖ
16.12.14
✎
18:46
|
(7) передать ее в функцию, ясен купорос
Процедура ВыполнитьСортировку(мояссылко) Экспорт |
|||
9
maslov_ilya
16.12.14
✎
18:54
|
(6) Да, я пытался, но в силу недостатка, пока что, знаний, не соображу как передать в процедуру этот параметр.
Грубо говоря, должно выглядеть вот так? Процедура ВыполнитьСортировку(ДокументСсылка) Экспорт ОбъектНазначения = ДокументСсылка.Получить объект(); ТаблицаТовары = ДокументСсылка.Товары.Выгрузить(); Как же передать параметр ДокументСсылка? |
|||
10
Господин ПЖ
16.12.14
✎
18:56
|
Документы.РеализацияТоваров.ВыполнитьСортировку(мояссылко);
|
|||
11
maslov_ilya
16.12.14
✎
20:29
|
(10) Извините, а где должна находиться данная строка кода и каким образом с помощью нее я могу передать ссылку на документ в мою процедуру?
Я, честно, пытался понять ваше сообщение...но никак |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |