Неверный идентификатор колонки!

Новая тема
Показывать по 10 20 40 сообщений
и у меня на часах уже 0:05) я сейчас выложу Вам скрины справочников Прейскуранты и Тарифы, посмотрите пожалуйста завтра... мне бы до завтра разобраться с этим
"первый скрин - справочник Прейскуранты, в нем есть 5 справочников... второй скрин - это содержание первого справочника, третий скрин - содержание второго справочника, и четвертый скрин - содержание пятого справочника... наименования прцедур должны выводиться в таблицу не из одного справочника, а из всех пяти (в зависимости от того, какие процедуры проходил пациентов).  а у меня в таблице выводиться наименования процедур только первого справочника, так как он был указан в программе

Процедура Сформировать()
   СпрПрейскурант = СоздатьОбъект("Справочник.Прейскуранты");      
   СпрПрейскурант.НайтиПоКоду(1); - если здесь указать 2, то следовательно в таблице будет выводиться наименования процедур из второго справочника
   СпрТарифы = СоздатьОбъект("Справочник.Тарифы");
   СпрТарифы.ИспользоватьВладельца(СпрПрейскурант.ТекущийЭлемент());

поэтому я добавила еще 5, таким образом

СпрПрейскурант.НайтиПоКоду(1);
СпрПрейскурант.НайтиПоКоду(2);
СпрПрейскурант.НайтиПоКоду(3);
СпрПрейскурант.НайтиПоКоду(4);
СпрПрейскурант.НайтиПоКоду(5);

Все говорят что это ничего мне не даст...
как правильно написать?
"
1.jpg (152.67 КБ)
2.jpg (468.95 КБ)
3.jpg (474.23 КБ)
4.jpg (399.48 КБ)
"Т.к. в Тарифах из разных Прейскурантов одинаковые коды, то в имена колонок надо еще добавить код прейскуранта.

  СпрПрейскурант = СоздатьОбъект("Справочник.Прейскуранты");  
  СпрТарифы = СоздатьОбъект("Справочник.Тарифы");  
  ДокСтатКарты = СоздатьОбъект("Документ.СтатКартаПациента");
  Т = СоздатьОбъект("Таблица");
  тзПроцедуры = СоздатьОбъект("ТаблицаЗначений");
  тзПроцедуры.НоваяКолонка("Контрагент");
  тзПроцедуры.НоваяКолонка("ФИО");
  тзПроцедуры.НоваяКолонка("Цена", "Число");
  СпрТарифы.ВыбратьЭлементы(0);
  Пока СпрТарифы.ПолучитьЭлемент() = 1 Цикл
      Колонка = "к" + СокрЛП(СпрТарифы.Владелец.Код) + СокрЛП(СпрТарифы.Код);
      тзПроцедуры.НоваяКолонка(Колонка, "Число");
  КонецЦикла;
. . .
(в 2-х местах):
              тзПроцедуры.НоваяСтрока();
              тзПроцедуры.ФИО         = Док.Пациент;
              тзПроцедуры.Контрагент    = Док.Авиакомпания;
              тзПроцедуры.Цена        = Док.Цена;
              КодПроцедуры = СокрЛП(Док.КодПроцедуры.Код);
              КодПрейскуранта = СокрЛП(Док.КодПроцедуры.Владелец.Код);
              //Сообщить(КодПроцедуры);
              тзПроцедуры.УстановитьЗначение(тзПроцедуры.НомерСтроки, "к" + СокрЛП(КодПрейскуранта) + СокрЛП(КодПроцедуры), 1);
. . .

  Для а = 4 По тзПроцедуры.КоличествоКолонок() Цикл
      КодПроцедуры = тзПроцедуры.ПолучитьПараметрыКолонки(а);
      КодПрейскуранта = Сред(КодПроцедуры, 2, 1);
      КодПроцедуры = Прав(КодПроцедуры, 6);
      СпрПрейскурант.НайтиПоКоду(КодПрейскуранта);
      СпрТарифы.ИспользоватьВладельца(СпрПрейскурант.ТекущийЭлемент());
      СпрТарифы.НайтиПоКоду(КодПроцедуры);
      КодПроцедуры = СпрТарифы.ПолноеНаименование;
     
      Т.ПрисоединитьСекцию("Шапка|Процедуры");
  КонецЦикла;
. . .

 Для а = 4 По тзПроцедуры.КоличествоКолонок() Цикл
      ИтогоПосещений = тзПроцедуры.Итог(а);
      КодПроцедуры = тзПроцедуры.ПолучитьПараметрыКолонки(а);
      КодПрейскуранта = Сред(КодПроцедуры, 2, 1);
      КодПроцедуры = Прав(КодПроцедуры, 6);
      СпрПрейскурант.НайтиПоКоду(КодПрейскуранта);
      СпрТарифы.ИспользоватьВладельца(СпрПрейскурант.ТекущийЭлемент());
      СпрТарифы.НайтиПоКоду(КодПроцедуры);
      Цена =СпрТарифы.Цена.получить(НачДата);
      сумма = Цена*ИтогоПосещений;
      Т.ПрисоединитьСекцию("Подвал|Процедуры");
      ИтогоПосещений=0;
      Цена=0;
КонецЦикла;"
"Спасибо Вам большое Вьюн! но вот до сих пор ругается на эту строку
тзПроцедуры.УстановитьЗначение(тзПроцедуры.НомерСтроки, "к" + СокрЛП(КодПрейскуранта) + СокрЛП(КодПроцедуры), 1);
{Отчет.ОтчетПоАвиакомпаниям1.Форма.Модуль(59)}: Неверный идентификатор колон"
перепроверила вноыь все, оказалось я в одном месте пропустила строчку)) извиняюсь все правильно сформировалось, спасибо огромное! вот только наименования процедур у меня пустые, хотя количество, цена, все высчитывает правильно, только наименований нет, пустые колонки
А в макете в секции "Шапка|Процедуры" в самой шапке стоит выражение КодПроцедуры?
Прикрепляю скрин макета таблицы
"Попробовать вместо
      КодПроцедуры = СпрТарифы.ПолноеНаименование;
поставить
      КодПроцедуры = СпрТарифы.ТекущийЭлемент().ПолноеНаименование;
А по-хорошему, пройтись отладчиком и посмотреть, найден ли в этом месте СпрТарифы и что находится в ПолноеНаименование, может наименование находится в реквизите Наименование."
"Вьюн Вы просто гений! это я невнимательная не написала в одном месте строчку
  Т.ВывестиСекцию("Шапка|ФИО");
   Т.ПрисоединитьСекцию("Шапка|Контрагент");
   Для а = 4 По тзПроцедуры.КоличествоКолонок() Цикл
       КодПроцедуры = тзПроцедуры.ПолучитьПараметрыКолонки(а);  
       КодПрейскуранта = Сред(КодПроцедуры, 2, 1);
       КодПроцедуры = Прав(КодПроцедуры, 6);  
      СпрПрейскурант.найтипокоду(КодПрейскуранта);   - вот эту
       СпрТарифы.ИспользоватьВладельца(СпрПрейскурант.ТекущийЭлемент());

поэтому и наименования были пустые, все пересмотрела заново, сравнила и нашла)) спасибо Вам огромное! удачи Вам и всех благ! если бы не Вы вряд ли я бы закончила этот отчет"
Читают тему
(гостей: 1)

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