ТаблицаЗначений
Показывать по
10
20
40
сообщений
- 1
- 2
11.11.2009
09:29
#1
"Здравствуйте!
У меня такая проблема:
Есть две процедуры (для вывода на печать списка картинок из документа) в 1С 7.7
Проблема в том что мне нужно передать из одной процедуры в другую заполненную таблицу значений.
Однако у меня сама таблица передается (через отладчик видно что таблица передалась и заполнена) но при выполнении функции ТЗ.ВыбратьСтроки() (да и любой другой операции с данной ТЗ) выдается ошибка что ТЗ не является агрегатным объектом , например Значение не представляет агрегатный объект (ВыбратьСтроки)
Процедура Сертификат() - вызов печати с кнопки в форме документа
Процедура ЗагрКартинку() - обрабатывает вывод изображения и самой печатной формы (В печатной форме находится объект Изображение с параметрами ЗагрКартинку(Таб.ТекущийОбъект,,)
//******************************************************************************
// ЗагрКартинку
// выводим картинку в таблицу
//
Процедура ЗагрКартинку(Фотография, Таб, СписокСканов)
СписокСканов.Свернуть("Картинка","Серт");
СписокСканов.ВыбратьСтроки();
Пока СписокСканов.ПолучитьСтроку() = 1 Цикл
КартинкаСертификата = СписокСканов.Картинка;
Фотография.Загрузить(КартинкаСертификата);
Таб.ВывестиСекцию("Изображение");
Таб.НоваяСтраница();
КонецЦикла;
КонецПроцедуры // ЗагрКартинку()
//******************************************************************************
// Процедура Сертификат()
// Параметры:
// Нет.
//
// Вызывается из формул элементов диалога:
// Нет.
//
// Описание:
// Печать качественного удостоверения
//
Процедура Сертификат()
Если Проведен() = 0 Тогда
Предупреждение("Для формирования сертификата необходимо сначала ПРОВЕСТИ документ");
Возврат;
КонецЕсли;
Если Модифицированность() = 1 Тогда
Предупреждение("Данные были изменены. Для формирования сертификата необходимо сначала ПРОВЕСТИ документ");
Возврат;
КонецЕсли;
СписокСканов = СоздатьОбъект("ТаблицаЗначений");
СписокСканов.НоваяКолонка("Серт");
СписокСканов.НоваяКолонка("Картинка");
Фотография = СоздатьОбъект("картинка");
Регистры = СоздатьОбъект("Регистры");
РегистрыПоказанияВыпуска = Регистры.ПоказанияВыпуска;
РегистрыПоказанияВыпуска.ВыбратьДвиженияДокумента(ТекущийДокумент());
Пройдено = 0;
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сертификат");
Пока РегистрыПоказанияВыпуска.ПолучитьДвижение() = 1 Цикл
МПЗ = РегистрыПоказанияВыпуска.МПЗ;
ДатаРозлива = РегистрыПоказанияВыпуска.ДатаРозлива;
Если МПЗ.Алкогольный <> Перечисление.Булево.Да Тогда
Возврат;
КонецЕсли;
Серт = МПЗ.Сертификат.Получить(ДатаРозлива);
Картинка = Серт.ИмяВыбрФайла;
Если ПустоеЗначение(Картинка) = 1 Тогда
Сообщить("У МПЗ " + МПЗ.Наименование + " отсутствует привязанный скан сертификата");
Продолжить;
КонецЕсли;
СписокСканов.НоваяСтрока();
СписокСканов.Серт = Серт;
СписокСканов.Картинка = Картинка;
КонецЦикла;
ЗагрКартинку(Фотография, Таб, СписокСканов);
Таб.Показать("Сертификат");
КонецПроцедуры // Сертификат()
"
У меня такая проблема:
Есть две процедуры (для вывода на печать списка картинок из документа) в 1С 7.7
Проблема в том что мне нужно передать из одной процедуры в другую заполненную таблицу значений.
Однако у меня сама таблица передается (через отладчик видно что таблица передалась и заполнена) но при выполнении функции ТЗ.ВыбратьСтроки() (да и любой другой операции с данной ТЗ) выдается ошибка что ТЗ не является агрегатным объектом , например Значение не представляет агрегатный объект (ВыбратьСтроки)
Процедура Сертификат() - вызов печати с кнопки в форме документа
Процедура ЗагрКартинку() - обрабатывает вывод изображения и самой печатной формы (В печатной форме находится объект Изображение с параметрами ЗагрКартинку(Таб.ТекущийОбъект,,)
//******************************************************************************
// ЗагрКартинку
// выводим картинку в таблицу
//
Процедура ЗагрКартинку(Фотография, Таб, СписокСканов)
СписокСканов.Свернуть("Картинка","Серт");
СписокСканов.ВыбратьСтроки();
Пока СписокСканов.ПолучитьСтроку() = 1 Цикл
КартинкаСертификата = СписокСканов.Картинка;
Фотография.Загрузить(КартинкаСертификата);
Таб.ВывестиСекцию("Изображение");
Таб.НоваяСтраница();
КонецЦикла;
КонецПроцедуры // ЗагрКартинку()
//******************************************************************************
// Процедура Сертификат()
// Параметры:
// Нет.
//
// Вызывается из формул элементов диалога:
// Нет.
//
// Описание:
// Печать качественного удостоверения
//
Процедура Сертификат()
Если Проведен() = 0 Тогда
Предупреждение("Для формирования сертификата необходимо сначала ПРОВЕСТИ документ");
Возврат;
КонецЕсли;
Если Модифицированность() = 1 Тогда
Предупреждение("Данные были изменены. Для формирования сертификата необходимо сначала ПРОВЕСТИ документ");
Возврат;
КонецЕсли;
СписокСканов = СоздатьОбъект("ТаблицаЗначений");
СписокСканов.НоваяКолонка("Серт");
СписокСканов.НоваяКолонка("Картинка");
Фотография = СоздатьОбъект("картинка");
Регистры = СоздатьОбъект("Регистры");
РегистрыПоказанияВыпуска = Регистры.ПоказанияВыпуска;
РегистрыПоказанияВыпуска.ВыбратьДвиженияДокумента(ТекущийДокумент());
Пройдено = 0;
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сертификат");
Пока РегистрыПоказанияВыпуска.ПолучитьДвижение() = 1 Цикл
МПЗ = РегистрыПоказанияВыпуска.МПЗ;
ДатаРозлива = РегистрыПоказанияВыпуска.ДатаРозлива;
Если МПЗ.Алкогольный <> Перечисление.Булево.Да Тогда
Возврат;
КонецЕсли;
Серт = МПЗ.Сертификат.Получить(ДатаРозлива);
Картинка = Серт.ИмяВыбрФайла;
Если ПустоеЗначение(Картинка) = 1 Тогда
Сообщить("У МПЗ " + МПЗ.Наименование + " отсутствует привязанный скан сертификата");
Продолжить;
КонецЕсли;
СписокСканов.НоваяСтрока();
СписокСканов.Серт = Серт;
СписокСканов.Картинка = Картинка;
КонецЦикла;
ЗагрКартинку(Фотография, Таб, СписокСканов);
Таб.Показать("Сертификат");
КонецПроцедуры // Сертификат()
"
11.11.2009
10:10
#2
"> (В печатной форме находится объект Изображение с параметрами ЗагрКартинку(Таб.ТекущийОбъект,,)
)
Интересно, чему будет равен СписокСканов в процедуре ЗагрКартинку при таком вызове?
А вообще, не понятно следующее:
1. Из процедуры Сертификат вы вызываете ЗагрКартинку и в ней сразу же падает на ВыбратьСтроки? Или все случается позже?
2. Откуда еще вызывается процедура ЗагрКартинку?
3. Вы поставили точку прерывания на строке СписокСканов.ВыбратьСтроки(); Смотрите ТипЗначенияСтр(СписокСканов) вам говорит, что это ТаблицаЗначений, а следующий шаг приводит к сообщению "не является агрегатным объектом"?"
Интересно, чему будет равен СписокСканов в процедуре ЗагрКартинку при таком вызове?
А вообще, не понятно следующее:
1. Из процедуры Сертификат вы вызываете ЗагрКартинку и в ней сразу же падает на ВыбратьСтроки? Или все случается позже?
2. Откуда еще вызывается процедура ЗагрКартинку?
3. Вы поставили точку прерывания на строке СписокСканов.ВыбратьСтроки(); Смотрите ТипЗначенияСтр(СписокСканов) вам говорит, что это ТаблицаЗначений, а следующий шаг приводит к сообщению "не является агрегатным объектом"?"
11.11.2009
10:27
#3
Список сканов равен списку имен файлов (с путями к ним) картинок
1. Падает на любой функции которая обращается к СпискуСканов именно КАК к ТаблицеЗначений
2. обрабатывает вывод изображения и самой печатной формы (В печатной форме находится объект Изображение с параметрами ЗагрКартинку(Таб.ТекущийОбъект,,)
3. Поставил. Смотрите ниже
скриншоте видно что таблица значений передалась в ЗагрКартинку() - данные скрины сделаны в точке прерывания именно в данной процедуре
Не понятно одно - почему объект, являющийся ТЗ, не обрабатывается функциями для данного типа ?
1. Падает на любой функции которая обращается к СпискуСканов именно КАК к ТаблицеЗначений
2. обрабатывает вывод изображения и самой печатной формы (В печатной форме находится объект Изображение с параметрами ЗагрКартинку(Таб.ТекущийОбъект,,)
3. Поставил. Смотрите ниже
скриншоте видно что таблица значений передалась в ЗагрКартинку() - данные скрины сделаны в точке прерывания именно в данной процедуре
Не понятно одно - почему объект, являющийся ТЗ, не обрабатывается функциями для данного типа ?
11.11.2009
11:53
#6
Проблема была в рисунке печатной формы с параметрами ЗагрКартинку(Таб.ТекущийОбъект,,) в ",,"
15.11.2009
14:54
#7
А подскажите плз. как динамически подставлять картинку в печатную форму????
Я нашел, что объект "картинка" работает только в форме...
На печатной форме можно вставить картинку, указав жестко к ней путь...
или можно как-то подставлять какую картинку хотим распечатать(к примеру под каждый товар свою копию jpg Или bmp сертификата)???
Я нашел, что объект "картинка" работает только в форме...
На печатной форме можно вставить картинку, указав жестко к ней путь...
или можно как-то подставлять какую картинку хотим распечатать(к примеру под каждый товар свою копию jpg Или bmp сертификата)???
16.11.2009
10:30
#8
Вам надо сохранить картинку или путь к ней в реквизите номенклатуры. Кинуть в табличную часть объект картинка и при выводе таблицы загрузить туда картинку.
17.11.2009
10:56
#9
При вставке картинки в печатную таблицу (mxl) требует выбрать файл , и нет идентификатора, с которым можно работать... или все-таки где-то есть???
17.11.2009
14:00
#10
> При вставке картинки в печатную таблицу (mxl) требует выбрать файл , и нет идентификатора, с которым можно работать... или все-таки где-то есть???
>
Отказываетесь от выбора файла, в таблицу объект все-равно будет вставлен. А в свойствах (в поле Текст) надо указать процедуру с параметрами, которая сделает загрузку.
>
Отказываетесь от выбора файла, в таблицу объект все-равно будет вставлен. А в свойствах (в поле Текст) надо указать процедуру с параметрами, которая сделает загрузку.
- 1
- 2
Читают тему
(гостей: 1)