Имя: Пароль:
1C
1C 7.7
v7: Вылетает 1С при использовании расширения формы, при повторном запуске.
🠗 (ДенисЧ 25.08.2011 21:34)
0 Aristo
 
25.08.11
17:45
Коллеги!
Я использовал Formex для управления положением колонок в форме отчета.
Первый запуск проходит отлично, при повторном формировании - вылетает 1С.

тзРез = реквизит формы типа "таблицаЗначений"
тзРезультат - промежуточная таблица значений

   ТЗРез.УдалитьСтроки();
   ТЗРезультат = СоздатьОбъект("ТаблицаЗначений");
   
   тзРезультат.НоваяКолонка("ПечПодтв",,,,"Подтв",5,);
   тзРезультат.НоваяКолонка("ПечВидПоездки",,,,"Вид",8);
   тзРезультат.НоваяКолонка("ПечНомерДокумента",,,,"Номер док.",8);    
   тзРезультат.НоваяКолонка("ДатаТранспортировки",,,,"Дата дост.",10);
   тзРезультат.НоваяКолонка("Водитель",30);

   тзРезультат.НоваяКолонка("ПечПунктПогрузки",,,,"Пункт погрузки",30);
   тзРезультат.НоваяКолонка("ПечПунктНазначения",,,,"Пукнт разгрузки",10,,);
   
   тзРезультат.НоваяКолонка("ПечАдресПогрузки",,,,"Адрес погрузки",50);
   тзРезультат.НоваяКолонка("ПечАдресРазгрузки",,,,"Адрес разгрузки",50);
   
   тзРезультат.НоваяКолонка("ПечКонтактПогрузка",,,,"Контакты погр.",20);
   тзРезультат.НоваяКолонка("ПечКонтактРазгрузка",,,,"Контакт разгр.",20);
   
   тзРезультат.НоваяКолонка("ПечВремяПодачи","Строка",,,,"Время погр.",8);
   тзРезультат.НоваяКолонка("ПечВремяРазгрузка",,,,"Время разгр.",8);    
       
   тзРезультат.НоваяКолонка("ПечТранспортнаяКомпания",,,,"Трансп. компания");
   тзРезультат.НоваяКолонка("ПечНомерДоговора",,,,"№ договора",10);
   тзРезультат.НоваяКолонка("ПечОплатаТранспортныхУслуг",,,,"Опл.до ТК",10);
   тзРезультат.НоваяКолонка("ПечОплатаТранспортныхУслугЖД",,,,"Опл.ЖД",10);
   тзРезультат.НоваяКолонка("ПечОплатаТранспортныхУслугАвто",,,,"Опл.авто",10);
   тзРезультат.НоваяКолонка("ПечВесОбъем",,,,"Вес,Объем,Площадь");;
   тзРезультат.НоваяКолонка("ПечКомментарий",,,,"Коммент",20);
   тзРезультат.НоваяКолонка("ПечМенеджер",,,,"Менеджер",30);
   тзРезультат.НоваяКолонка("ДокументОснование","Документ",,,"Основание",10);
   тзРезультат.НоваяКолонка("ПечДата","Дата",,,"Дата",6);
   
   тзРезультат.НоваяКолонка("Заявка");
   тзРезультат.НоваяКолонка("ПорядокВидаДоставки");
   тзРезультат.НоваяКолонка("Доставлено");

...дальше заполняется тзРезультат.
...
   ТЗРезультат.Выгрузить(тзРез);
   РФормы = СоздатьОбъект("РасширениеФормы");
   РФормы.ПоложениеКолонкиТаблицы("тзРез",6,2);
   РФормы.ПоложениеКолонкиТаблицы("тзРез",8,2);
   РФормы.ПоложениеКолонкиТаблицы("тзРез",10,2);
   РФормы.ПоложениеКолонкиТаблицы("тзРез",12,2);
   ТЗРез.НоваяКолонка("Служебная");
   ТЗРез.УдалитьКолонку(ТЗРез.КоличествоКолонок());

когда код по установке положения колонок комментируется, при повторном запуске все нормально.
1 Aprobator
 
25.08.11
17:46
хм - а без Formex нельзя что ли управлять колонками в отчете?
2 Ёпрст
 
25.08.11
17:47
(0) и при чем тут снеговик ?
3 Aristo
 
25.08.11
17:47
(1) а Вы умеете ? скажите как в форме отчета сделать чтобы колонка была под предыдущей.
4 Aristo
 
25.08.11
17:48
(2) ?
5 Ёпрст
 
25.08.11
17:48
(0) Надеюсь, всё это в ПослеОткрытияФормы  хотя бы ?
6 Ёпрст
 
25.08.11
17:48
(4) v8: Вылетает ....
7 Aprobator
 
25.08.11
17:50
(3) ТабличныйДокумент вам в помощь.
8 Aristo
 
25.08.11
17:53
(5) Нет, это в процедуре вызываемой по кнопке. Пока...
Потом естественно будет там.
9 Aristo
 
25.08.11
17:54
(7) можно подробнее, я неопытен в formex
10 Aprobator
 
25.08.11
17:56
(9) я не про формекс, а про родной табличныйдокумент 8. Репу почесать придется, но области там тасовать вроде можно. Формекс я вообще не юзаю, имхо, слишком нестабильная штука.
11 Ёпрст
 
25.08.11
17:56
Лучше ТП использовать, там гораздо больше возможностей.. в разы.
+поставщиком для ТП индесированнуюТ ТЗ (или обычную)
12 Aristo
 
25.08.11
17:57
(10) 7ка..
13 Aristo
 
25.08.11
17:57
(11) ни разу не использовал... с чего хоть начать
14 Ёпрст
 
25.08.11
17:59
(13) с докумментации вестимо:
http://www.1cpp.ru/docum/icpp/html/TableField.html
15 Aristo
 
25.08.11
19:21
(14) просмотрел документацию, уже реализовал табличное поле на форме, но так и не нашел как сделать 2 вещи.
1. Сделать чтобы колонка была под предыдущей
2. Пиктограмму на колонке (добавил колонку "V") с "галкой"
16 Aristo
 
25.08.11
19:35
(15) 1 нашел
17 Aristo
 
25.08.11
20:58
(17) люди, можете дать пример отображения пиктограмм в колонке ?
18 Aristo
 
25.08.11
21:01
(17) у меня колонки инициализируются так.
В первую колонку я хочу засунуть пиктограмму, видимо не хватает знаний


Для сч = 1 по тзРезультат.КоличествоКолонок() цикл
           
           Заголовок = "";
           Ширина = 0;
           Данные = тзРезультат.ПолучитьПараметрыКолонки(Сч,,,,Заголовок,Ширина);
           Колонка = гТабличноеПоле.Колонки.Добавить(Данные);
           Если Сч = 1 Тогда
               Картинка = СоздатьОбъект("Картинка");
               Картинка.Загрузить(КаталогИБ()+"ExtForms\map1.bmp");
               Картинка.РежимРисования(1);
               Колонка.УстановитьКартинкиСтрок(Картинка,);
           КонецЕсли;
           Колонка.Заголовок        = Заголовок;
           Колонка.Данные            = Данные;
           Колонка.Ширина            = Ширина*2;
           Колонка.ПереноситьПоСловам = 1;
           Если СписокКолонокНаСледующейСтроке.НайтиЗначение(Данные)<>0 Тогда
               Колонка.Положение = 1;
           КонецЕсли    ;
           
           Если СписокКолонокВТойЖеКолонке.НайтиЗначение(Данные)<>0 Тогда
               Колонка.Положение = 2;
           КонецЕсли;    
           Если СписокНевидимыхКолонок.НайтиЗначение(Данные)<>0 Тогда
               Колонка.Видимость = 0;
           КонецЕсли;    
       КонецЦикла;    
   КонецЕсли;
19 Злопчинский
 
26.08.11
02:44
в (0) операторы
ТЗРез.НоваяКолонка("Служебная");
ТЗРез.УдалитьКолонку(ТЗРез.КоличествоКолонок());
- бессмыслены, их можно закомментировть
20 Ёпрст
 
26.08.11
08:57
(17)в  привыводеСтроки назначай картинку свою.
21 Aristo
 
26.08.11
09:26
(20) а как ?
я туплю, но в хелпе синтаксиса нет, там только описание методов.
Я старался как мог сам разобраться, но разобрался только с положением колонок.
22 Aristo
 
26.08.11
09:33
(19) первоначальное уже не актуально, я переделал все на ТабличноеПоле (см инициализацию поля в 18). Есть другой вопрос
23 Aristo
 
26.08.11
10:14
в принципе задача вывести пиктограмму- не важно картинкой ли или флажком.
<a href="https://1cers.ru/topic.php?id=566542" target="_blank" ref="nofollow" class="extralink">Табличное поле 1с++: добавить флажок;