Неверный идентификатор колонки!
Показывать по
10
20
40
сообщений
- 1
- 2
13.03.2012
23:06
#11
и у меня на часах уже 0:05) я сейчас выложу Вам скрины справочников Прейскуранты и Тарифы, посмотрите пожалуйста завтра... мне бы до завтра разобраться с этим
13.03.2012
23:35
#12
"первый скрин - справочник Прейскуранты, в нем есть 5 справочников... второй скрин - это содержание первого справочника, третий скрин - содержание второго справочника, и четвертый скрин - содержание пятого справочника... наименования прцедур должны выводиться в таблицу не из одного справочника, а из всех пяти (в зависимости от того, какие процедуры проходил пациентов). а у меня в таблице выводиться наименования процедур только первого справочника, так как он был указан в программе
Процедура Сформировать()
СпрПрейскурант = СоздатьОбъект("Справочник.Прейскуранты");
СпрПрейскурант.НайтиПоКоду(1); - если здесь указать 2, то следовательно в таблице будет выводиться наименования процедур из второго справочника
СпрТарифы = СоздатьОбъект("Справочник.Тарифы");
СпрТарифы.ИспользоватьВладельца(СпрПрейскурант.ТекущийЭлемент());
поэтому я добавила еще 5, таким образом
СпрПрейскурант.НайтиПоКоду(1);
СпрПрейскурант.НайтиПоКоду(2);
СпрПрейскурант.НайтиПоКоду(3);
СпрПрейскурант.НайтиПоКоду(4);
СпрПрейскурант.НайтиПоКоду(5);
Все говорят что это ничего мне не даст...
как правильно написать?
"
Процедура Сформировать()
СпрПрейскурант = СоздатьОбъект("Справочник.Прейскуранты");
СпрПрейскурант.НайтиПоКоду(1); - если здесь указать 2, то следовательно в таблице будет выводиться наименования процедур из второго справочника
СпрТарифы = СоздатьОбъект("Справочник.Тарифы");
СпрТарифы.ИспользоватьВладельца(СпрПрейскурант.ТекущийЭлемент());
поэтому я добавила еще 5, таким образом
СпрПрейскурант.НайтиПоКоду(1);
СпрПрейскурант.НайтиПоКоду(2);
СпрПрейскурант.НайтиПоКоду(3);
СпрПрейскурант.НайтиПоКоду(4);
СпрПрейскурант.НайтиПоКоду(5);
Все говорят что это ничего мне не даст...
как правильно написать?
"
14.03.2012
01:40
#13
"Т.к. в Тарифах из разных Прейскурантов одинаковые коды, то в имена колонок надо еще добавить код прейскуранта.
СпрПрейскурант = СоздатьОбъект("Справочник.Прейскуранты");
СпрТарифы = СоздатьОбъект("Справочник.Тарифы");
ДокСтатКарты = СоздатьОбъект("Документ.СтатКартаПациента");
Т = СоздатьОбъект("Таблица");
тзПроцедуры = СоздатьОбъект("ТаблицаЗначений");
тзПроцедуры.НоваяКолонка("Контрагент");
тзПроцедуры.НоваяКолонка("ФИО");
тзПроцедуры.НоваяКолонка("Цена", "Число");
СпрТарифы.ВыбратьЭлементы(0);
Пока СпрТарифы.ПолучитьЭлемент() = 1 Цикл
Колонка = "к" + СокрЛП(СпрТарифы.Владелец.Код) + СокрЛП(СпрТарифы.Код);
тзПроцедуры.НоваяКолонка(Колонка, "Число");
КонецЦикла;
. . .
(в 2-х местах):
тзПроцедуры.НоваяСтрока();
тзПроцедуры.ФИО = Док.Пациент;
тзПроцедуры.Контрагент = Док.Авиакомпания;
тзПроцедуры.Цена = Док.Цена;
КодПроцедуры = СокрЛП(Док.КодПроцедуры.Код);
КодПрейскуранта = СокрЛП(Док.КодПроцедуры.Владелец.Код);
//Сообщить(КодПроцедуры);
тзПроцедуры.УстановитьЗначение(тзПроцедуры.НомерСтроки, "к" + СокрЛП(КодПрейскуранта) + СокрЛП(КодПроцедуры), 1);
. . .
Для а = 4 По тзПроцедуры.КоличествоКолонок() Цикл
КодПроцедуры = тзПроцедуры.ПолучитьПараметрыКолонки(а);
КодПрейскуранта = Сред(КодПроцедуры, 2, 1);
КодПроцедуры = Прав(КодПроцедуры, 6);
СпрПрейскурант.НайтиПоКоду(КодПрейскуранта);
СпрТарифы.ИспользоватьВладельца(СпрПрейскурант.ТекущийЭлемент());
СпрТарифы.НайтиПоКоду(КодПроцедуры);
КодПроцедуры = СпрТарифы.ПолноеНаименование;
Т.ПрисоединитьСекцию("Шапка|Процедуры");
КонецЦикла;
. . .
Для а = 4 По тзПроцедуры.КоличествоКолонок() Цикл
ИтогоПосещений = тзПроцедуры.Итог(а);
КодПроцедуры = тзПроцедуры.ПолучитьПараметрыКолонки(а);
КодПрейскуранта = Сред(КодПроцедуры, 2, 1);
КодПроцедуры = Прав(КодПроцедуры, 6);
СпрПрейскурант.НайтиПоКоду(КодПрейскуранта);
СпрТарифы.ИспользоватьВладельца(СпрПрейскурант.ТекущийЭлемент());
СпрТарифы.НайтиПоКоду(КодПроцедуры);
Цена =СпрТарифы.Цена.получить(НачДата);
сумма = Цена*ИтогоПосещений;
Т.ПрисоединитьСекцию("Подвал|Процедуры");
ИтогоПосещений=0;
Цена=0;
КонецЦикла;"
СпрПрейскурант = СоздатьОбъект("Справочник.Прейскуранты");
СпрТарифы = СоздатьОбъект("Справочник.Тарифы");
ДокСтатКарты = СоздатьОбъект("Документ.СтатКартаПациента");
Т = СоздатьОбъект("Таблица");
тзПроцедуры = СоздатьОбъект("ТаблицаЗначений");
тзПроцедуры.НоваяКолонка("Контрагент");
тзПроцедуры.НоваяКолонка("ФИО");
тзПроцедуры.НоваяКолонка("Цена", "Число");
СпрТарифы.ВыбратьЭлементы(0);
Пока СпрТарифы.ПолучитьЭлемент() = 1 Цикл
Колонка = "к" + СокрЛП(СпрТарифы.Владелец.Код) + СокрЛП(СпрТарифы.Код);
тзПроцедуры.НоваяКолонка(Колонка, "Число");
КонецЦикла;
. . .
(в 2-х местах):
тзПроцедуры.НоваяСтрока();
тзПроцедуры.ФИО = Док.Пациент;
тзПроцедуры.Контрагент = Док.Авиакомпания;
тзПроцедуры.Цена = Док.Цена;
КодПроцедуры = СокрЛП(Док.КодПроцедуры.Код);
КодПрейскуранта = СокрЛП(Док.КодПроцедуры.Владелец.Код);
//Сообщить(КодПроцедуры);
тзПроцедуры.УстановитьЗначение(тзПроцедуры.НомерСтроки, "к" + СокрЛП(КодПрейскуранта) + СокрЛП(КодПроцедуры), 1);
. . .
Для а = 4 По тзПроцедуры.КоличествоКолонок() Цикл
КодПроцедуры = тзПроцедуры.ПолучитьПараметрыКолонки(а);
КодПрейскуранта = Сред(КодПроцедуры, 2, 1);
КодПроцедуры = Прав(КодПроцедуры, 6);
СпрПрейскурант.НайтиПоКоду(КодПрейскуранта);
СпрТарифы.ИспользоватьВладельца(СпрПрейскурант.ТекущийЭлемент());
СпрТарифы.НайтиПоКоду(КодПроцедуры);
КодПроцедуры = СпрТарифы.ПолноеНаименование;
Т.ПрисоединитьСекцию("Шапка|Процедуры");
КонецЦикла;
. . .
Для а = 4 По тзПроцедуры.КоличествоКолонок() Цикл
ИтогоПосещений = тзПроцедуры.Итог(а);
КодПроцедуры = тзПроцедуры.ПолучитьПараметрыКолонки(а);
КодПрейскуранта = Сред(КодПроцедуры, 2, 1);
КодПроцедуры = Прав(КодПроцедуры, 6);
СпрПрейскурант.НайтиПоКоду(КодПрейскуранта);
СпрТарифы.ИспользоватьВладельца(СпрПрейскурант.ТекущийЭлемент());
СпрТарифы.НайтиПоКоду(КодПроцедуры);
Цена =СпрТарифы.Цена.получить(НачДата);
сумма = Цена*ИтогоПосещений;
Т.ПрисоединитьСекцию("Подвал|Процедуры");
ИтогоПосещений=0;
Цена=0;
КонецЦикла;"
14.03.2012
08:30
#14
"Спасибо Вам большое Вьюн! но вот до сих пор ругается на эту строку
тзПроцедуры.УстановитьЗначение(тзПроцедуры.НомерСтроки, "к" + СокрЛП(КодПрейскуранта) + СокрЛП(КодПроцедуры), 1);
{Отчет.ОтчетПоАвиакомпаниям1.Форма.Модуль(59)}: Неверный идентификатор колон"
тзПроцедуры.УстановитьЗначение(тзПроцедуры.НомерСтроки, "к" + СокрЛП(КодПрейскуранта) + СокрЛП(КодПроцедуры), 1);
{Отчет.ОтчетПоАвиакомпаниям1.Форма.Модуль(59)}: Неверный идентификатор колон"
14.03.2012
08:39
#15
перепроверила вноыь все, оказалось я в одном месте пропустила строчку)) извиняюсь все правильно сформировалось, спасибо огромное! вот только наименования процедур у меня пустые, хотя количество, цена, все высчитывает правильно, только наименований нет, пустые колонки
14.03.2012
09:34
#16
А в макете в секции "Шапка|Процедуры" в самой шапке стоит выражение КодПроцедуры?
14.03.2012
10:27
#18
"Попробовать вместо
КодПроцедуры = СпрТарифы.ПолноеНаименование;
поставить
КодПроцедуры = СпрТарифы.ТекущийЭлемент().ПолноеНаименование;
А по-хорошему, пройтись отладчиком и посмотреть, найден ли в этом месте СпрТарифы и что находится в ПолноеНаименование, может наименование находится в реквизите Наименование."
КодПроцедуры = СпрТарифы.ПолноеНаименование;
поставить
КодПроцедуры = СпрТарифы.ТекущийЭлемент().ПолноеНаименование;
А по-хорошему, пройтись отладчиком и посмотреть, найден ли в этом месте СпрТарифы и что находится в ПолноеНаименование, может наименование находится в реквизите Наименование."
16.03.2012
14:19
#19
"Вьюн Вы просто гений! это я невнимательная не написала в одном месте строчку
Т.ВывестиСекцию("Шапка|ФИО");
Т.ПрисоединитьСекцию("Шапка|Контрагент");
Для а = 4 По тзПроцедуры.КоличествоКолонок() Цикл
КодПроцедуры = тзПроцедуры.ПолучитьПараметрыКолонки(а);
КодПрейскуранта = Сред(КодПроцедуры, 2, 1);
КодПроцедуры = Прав(КодПроцедуры, 6);
СпрПрейскурант.найтипокоду(КодПрейскуранта); - вот эту
СпрТарифы.ИспользоватьВладельца(СпрПрейскурант.ТекущийЭлемент());
поэтому и наименования были пустые, все пересмотрела заново, сравнила и нашла)) спасибо Вам огромное! удачи Вам и всех благ! если бы не Вы вряд ли я бы закончила этот отчет"
Т.ВывестиСекцию("Шапка|ФИО");
Т.ПрисоединитьСекцию("Шапка|Контрагент");
Для а = 4 По тзПроцедуры.КоличествоКолонок() Цикл
КодПроцедуры = тзПроцедуры.ПолучитьПараметрыКолонки(а);
КодПрейскуранта = Сред(КодПроцедуры, 2, 1);
КодПроцедуры = Прав(КодПроцедуры, 6);
СпрПрейскурант.найтипокоду(КодПрейскуранта); - вот эту
СпрТарифы.ИспользоватьВладельца(СпрПрейскурант.ТекущийЭлемент());
поэтому и наименования были пустые, все пересмотрела заново, сравнила и нашла)) спасибо Вам огромное! удачи Вам и всех благ! если бы не Вы вряд ли я бы закончила этот отчет"
- 1
- 2
Как написать программно, чтобы цена выводилась в таблице при формировании отчета?Комплексная автоматизация 8.2
Читают тему
(гостей: 1)