Имя: Пароль:
1C
 
Запись результата отчета в ТЗ без СКД
0 gabd_marat
 
05.06.16
21:32
Народ, подскажите, записываю результат отчета в ТЗ, при этом выдается ошибка, не понятно почему.
&НаСервере
Процедура ПолучитьТЗИзМакета() Экспорт
    //Получаем Макет
    ТаблицаДанных = Новый ТаблицаЗначений();
    ТекМакет = Отчеты.ИнвентаризационнаяВедомостьТовара.ПолучитьМакет("Макет");
    Для НомерСтр = 9 По ТекМакет.ВысотаТаблицы Цикл
        
        Если НомерСтр >9 Тогда
            ТекСтр = ТаблицаДанных.Добавить();
        КонецЕсли;
        
        Для НомерКол = 2 По ТекМакет.ШиринаТаблицы Цикл
            Яч = ТекМакет.Область(НомерСтр,НомерКол);
            Если Яч.СодержитЗначение Тогда
                ЗначениеЯч = Яч.Значение;
            Иначе
                 ЗначениеЯч = Яч.Текст;
             КонецЕсли;  
                          
             Если НомерСтр = 9 Тогда
                ТаблицаДанных.Колонки.Добавить(ЗначениеЯч);
             Иначе
                ТекСтр[НомерКол-2] = ЗначениеЯч;
            КонецЕсли;             
        КонецЦикла;
    КонецЦикла;
            
КонецПроцедуры

{ОбщийМодуль.РаботаСоСправочниками.Модуль(91)}: Ошибка при вызове метода контекста (Добавить)
                ТаблицаДанных.Колонки.Добавить(ЗначениеЯч);
по причине:
Неверное имя колонки
1 mehfk
 
05.06.16
21:40
Поставь останов по ошибке и посмотри чему равено ЗначениеЯч.
2 gabd_marat
 
05.06.16
21:45
ЗначениеЯч = 2 Тип =  строка, (Как и должно быть в колонки добавляются номера колонок)
3 jsmith82
 
05.06.16
21:48
Имя колонки с цифры может начинаться?
4 gabd_marat
 
05.06.16
21:50
Не знаю)
5 jsmith82
 
05.06.16
21:50
Нет
6 jsmith82
 
05.06.16
21:51
Напиши типа Добавить("Префикс"+ЗначениеЯч)
7 gabd_marat
 
05.06.16
21:54
Сначала Поменял на текст, все равно выдает ошибку. Затем сделал как ты сказал, то же выдает ошибку в том же месте
8 gabd_marat
 
05.06.16
22:52
Начал с 10 строки выдает ошибку :
в строке - ТекСтр[НомерКол-2] = ЗначениеЯч;
Через отладчик получил ЗначениеЯч = "" Тип = строка
9 jsmith82
 
05.06.16
22:59
Ну ты посмелей. Проблема на ладонт
10 gabd_marat
 
05.06.16
23:04
Короче еще вопрос :
Есть отчет без СКД. Отчет выводится в табличный документ. В табличном документе есть возможность пользователя редактировать отчет. Нужно получить данные из отчета. Если брать данные с макета там будут измененные значения отчета пользователем или надо брать данные из Табличного документа
11 gabd_marat
 
05.06.16
23:09
(9)Подскажи в чем ошибка
12 hhhh
 
05.06.16
23:18
(11) какую ошибку выдает (8) ?
13 jsmith82
 
05.06.16
23:19
Ошибка в том, что значение пустое. Почему? Ну, епт. Ячейка пустая в макете по ходу. Отладчик есть. Мозги есть. XXI век. Вперёд. Если не хочешь профессию менять.
14 jsmith82
 
05.06.16
23:20
(10) Из документа
15 gabd_marat
 
05.06.16
23:33
(14)(10) То есть в макете данные никак не отобразятся , надо обязательно через док?
16 gabd_marat
 
05.06.16
23:37
Походу проблема в макете
17 hhhh
 
05.06.16
23:42
(16) кто придумал там у вас это ноу хау? редактировать макеты?
18 jsmith82
 
05.06.16
23:44
(15) Отчёт выводит в док. Макет вообще пустой м.б.епт
19 jsmith82
 
05.06.16
23:44
Ты че там куришь..
20 gabd_marat
 
05.06.16
23:45
в инете алгоритм нашел, я то же сначала думал что макет пустой) потом решил попробывать
21 gabd_marat
 
05.06.16
23:46
22 gabd_marat
 
05.06.16
23:49
Но хотя сначала ведь заполняем область макета и только потом выводим в ТД. По идее в области должны сохранится значения нет?
23 hhhh
 
06.06.16
00:00
(22) ТекМакет = Отчеты.ИнвентаризационнаяВедомостьТовара.ПолучитьМакет("Макет");

вот это вы грузите типовой макет из конфигурации. А где вы после у него области заполняете? Что-то нет нигде.
24 jsmith82
 
06.06.16
00:01
(22) макет-тд в ОЗУ - птд
Такова логика
25 gabd_marat
 
06.06.16
00:47
ясно, во передела под ТД:
Все равно та же ошибка в первом цикле на счет имени колонки :
{ОбщийМодуль.РаботаСоСправочниками.Модуль(80)}: Ошибка при вызове метода контекста (Добавить)
        ТаблицаДанных.Колонки.Добавить(ИмяКолонки);
по причине:
Неверное имя колонки

Вот код

&НаСервере
Процедура ПолучитьТЗИзМакета(ТабДок) Экспорт
    
    ТаблицаДанных = Новый ТаблицаЗначений();
    НомерКол = 1;
    
    Пока НомерКол < 7 Цикл
        НомерКол = НомерКол +1;
        ИмяКолонки = ТабДок.Область(9,НомерКол).Текст;
        ТаблицаДанных.Колонки.Добавить(ИмяКолонки);
    КонецЦикла;
    
    Для НомерКол = 2 По 7 Цикл
        НомерСтр = 10;
        Пока Не ПустаяСтрока(ТабДок.Область(НомерСтр,НомерКол).Значение) Цикл
            ТекстСтр = ТаблицаДанных.Добавить();
            ЗничениеЯч = ТабДок.Область(НомерСтр,НомерКол).Значение;
            ТекстСтр[НомерКол - 2] = ЗничениеЯч;
            НомерСтр = НомерСтр + 1;
        КонецЦикла;
    КонецЦикла;        
КонецПроцедуры

На счет метода Текст и Значение знаю не много. Поэтому Где использовал значение в макете используется значение
26 gabd_marat
 
06.06.16
00:48
В отладчике : ИмяКолонки = "Товар" Тип= строка
27 gabd_marat
 
06.06.16
00:49
В макете Заполнение =  Текст
Ошибка? Это не ошибка, это системная функция.