ТаблицаЗначений

Новая тема
Показывать по сообщений
"Здравствуйте!<br><br>У меня такая проблема:<br><br>Есть две процедуры (для вывода на печать списка картинок из документа) в 1С 7.7<br><br>Проблема в том что мне нужно передать из одной процедуры в другую заполненную таблицу значений.<br>Однако у меня сама таблица передается (через отладчик видно что таблица передалась и заполнена) но при выполнении функции ТЗ.ВыбратьСтроки() (да и любой другой операции с данной ТЗ) выдается ошибка что ТЗ не является агрегатным объектом , например Значение не представляет агрегатный объект (ВыбратьСтроки)<br>Процедура Сертификат() - вызов печати с кнопки в форме документа<br>Процедура ЗагрКартинку() - обрабатывает вывод изображения и самой печатной формы (В печатной форме находится объект Изображение с параметрами ЗагрКартинку(Таб.ТекущийОбъект,,)<br><br>//******************************************************************************<br>// ЗагрКартинку<br>// выводим картинку в таблицу<br>//<br>Процедура ЗагрКартинку(Фотография, Таб, СписокСканов)<br><br> СписокСканов.Свернуть("Картинка","Серт");<br> СписокСканов.ВыбратьСтроки();<br> <br> Пока СписокСканов.ПолучитьСтроку() = 1 Цикл<br>        КартинкаСертификата = СписокСканов.Картинка;<br> <br>     Фотография.Загрузить(КартинкаСертификата);<br> <br> Таб.ВывестиСекцию("Изображение");<br> Таб.НоваяСтраница();<br><br>   КонецЦикла;<br><br>КонецПроцедуры // ЗагрКартинку() <br><br>//******************************************************************************<br>// Процедура Сертификат()<br>// Параметры:<br>// Нет.<br>//<br>// Вызывается из формул элементов диалога:<br>//  Нет.<br>//<br>// Описание:<br>// Печать качественного удостоверения<br>//<br>Процедура Сертификат()<br> <br> Если Проведен() = 0 Тогда<br> Предупреждение("Для формирования сертификата необходимо сначала ПРОВЕСТИ документ");<br> Возврат;<br> КонецЕсли;                  <br> <br> Если Модифицированность() = 1 Тогда<br> Предупреждение("Данные были изменены. Для формирования сертификата необходимо сначала ПРОВЕСТИ документ");<br> Возврат;<br> КонецЕсли;                  <br> <br> СписокСканов = СоздатьОбъект("ТаблицаЗначений");<br> СписокСканов.НоваяКолонка("Серт");<br> СписокСканов.НоваяКолонка("Картинка");<br><br> Фотография = СоздатьОбъект("картинка");<br> <br>   Регистры = СоздатьОбъект("Регистры");<br> РегистрыПоказанияВыпуска = Регистры.ПоказанияВыпуска;<br> <br> РегистрыПоказанияВыпуска.ВыбратьДвиженияДокумента(ТекущийДокумент());<br><br> Пройдено = 0;<br> <br> Таб = СоздатьОбъект("Таблица");             <br> Таб.ИсходнаяТаблица("Сертификат");<br><br> Пока РегистрыПоказанияВыпуска.ПолучитьДвижение() = 1 Цикл<br>        <br> МПЗ = РегистрыПоказанияВыпуска.МПЗ;<br> ДатаРозлива = РегистрыПоказанияВыпуска.ДатаРозлива;<br> <br> Если МПЗ.Алкогольный <> Перечисление.Булево.Да  Тогда<br> Возврат;<br> КонецЕсли;<br> <br> Серт = МПЗ.Сертификат.Получить(ДатаРозлива);<br>                Картинка = Серт.ИмяВыбрФайла;<br> <br> Если ПустоеЗначение(Картинка) = 1 Тогда<br> Сообщить("У МПЗ " + МПЗ.Наименование + " отсутствует привязанный скан сертификата");<br> Продолжить;<br> КонецЕсли;<br> <br> СписокСканов.НоваяСтрока();<br> СписокСканов.Серт = Серт;<br> СписокСканов.Картинка = Картинка;<br><br> КонецЦикла;<br><br> ЗагрКартинку(Фотография, Таб, СписокСканов);<br><br> Таб.Показать("Сертификат");<br> <br>КонецПроцедуры // Сертификат() <br><br>"
"> (В печатной форме находится объект Изображение с параметрами ЗагрКартинку(Таб.ТекущийОбъект,,)<br>:))<br>Интересно, чему будет равен СписокСканов в процедуре ЗагрКартинку при таком вызове?<br><br>А вообще, не понятно следующее:<br>1. Из процедуры Сертификат вы вызываете ЗагрКартинку и в ней сразу же падает на ВыбратьСтроки? Или все случается позже?<br>2. Откуда еще вызывается процедура ЗагрКартинку?<br>3. Вы поставили точку прерывания на строке СписокСканов.ВыбратьСтроки(); Смотрите ТипЗначенияСтр(СписокСканов) вам говорит, что это ТаблицаЗначений, а следующий шаг приводит к сообщению "не является агрегатным объектом"?"
Список сканов равен списку имен файлов (с путями к ним) картинок<br>1. Падает на любой функции которая обращается к СпискуСканов именно КАК к ТаблицеЗначений<br>2. обрабатывает вывод изображения и самой печатной формы (В печатной форме находится объект Изображение с параметрами ЗагрКартинку(Таб.ТекущийОбъект,,)<br>3. Поставил. Смотрите ниже<br><br><br>http://pic.ipicture.ru/uploads/091111/c7aZ4Uz141.jpg<br><br>На скриншоте видно что таблица значений передалась в ЗагрКартинку() - данные скрины сделаны в точке прерывания именно в данной процедуре<br><br>Не понятно одно - почему объект, являющийся ТЗ, не обрабатывается функциями для данного типа ?
Проблему нашел. Всем спасибо ))
Что, выборка уже была открыта? :)
Проблема была в рисунке печатной формы с параметрами ЗагрКартинку(Таб.ТекущийОбъект,,) в ",,"
А подскажите плз. как динамически подставлять картинку в печатную форму????<br>Я нашел, что объект "картинка" работает только в форме...<br>На печатной форме можно вставить картинку, указав жестко к ней путь...<br>или можно как-то подставлять какую картинку хотим распечатать(к примеру под каждый товар свою копию jpg Или bmp сертификата)???
Вам надо сохранить картинку или путь к ней в реквизите номенклатуры. Кинуть в табличную часть объект картинка и при выводе таблицы загрузить туда картинку.
При вставке картинки в печатную таблицу (mxl) требует выбрать файл , и нет идентификатора, с которым можно работать... или все-таки где-то есть???<br>
> При вставке картинки в печатную таблицу (mxl) требует выбрать файл , и нет идентификатора, с которым можно работать... или все-таки где-то есть???<br>> <br>Отказываетесь от выбора файла, в таблицу объект все-равно будет вставлен. А в свойствах (в поле Текст) надо указать процедуру с параметрами, которая сделает загрузку.<br>

Читают тему

(гостей: 1)

Быстрый переход