Две цены на ценнике

Новая тема
Показывать по 10 20 40 сообщений
В обработке в макет ценника я добавлял реквизит <ПечРассрочка>, но в самом модуле не могу понять откуда происходит эта обработка?
Если добавить в модуль ПечРассрочка = Справочник.ТипЦен.Рассрочка, он не выдает не чего
Учить программированию на форуме неблагодарное дело, тем более что похоже ты вообще не разбираешься где хранится цена товара!
"тебе реквизиты добавлять в справочник не надо!
в списке номенклатуры есть строки типа:
ТипЦены = СоздатьОбъект("Справочник.ТипыЦен"); Если ТипЦены.Выбрать("Типы цен",) = 0 Тогда Возврат КонецЕсли;  ТипЦены = ТипЦены.ТекущийЭлемент();  ТабТоваров = СоздатьОбъект("ТаблицаЗначений"); ТабТоваров.НоваяКолонка("Товар"); ТабТоваров.НоваяКолонка("Цена","Число"); ТабТоваров.НоваяКолонка("Единица"); ТабТоваров.НоваяКолонка("Валюта");  Если ВыбТовар.ЭтоГруппа() = 0 Тогда  ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦены); Иначе  СтрТов = СоздатьОбъект("Справочник.Номенклатура");  СтрТов.ИспользоватьРодителя(ВыбТовар);  СтрТов.ВключатьПодчиненные(1);  СтрТов.ВыбратьЭлементы();    Пока СтрТов.ПолучитьЭлемент() = 1 Цикл   ТекТов = СтрТов.ТекущийЭлемент();   Если ТекТов.ЭтоГруппа() = 0 Тогда    ДобавитьВтаблицу(ТабТоваров, ТекТов, ТипЦены);   КонецЕсли;  КонецЦикла; КонецЕсли;  // упакуем данные в список ДанныеДляПечати = СоздатьОбъект("СписокЗначений");   Фирма = СокрЛП(глЗначениеПоУмолчанию("ОсновнаяФирма").ЮрЛицо.ПолнНаименование); ДанныеДляПечати.ДобавитьЗначение(Фирма          , "Фирма"); ДанныеДляПечати.ДобавитьЗначение(ТипЦены.Валюта , "Валюта"); ДанныеДляПечати.ДобавитьЗначение(ТабТоваров     , "Таблица");ОткрытьФормуМодально("Обработка.ПечатьЦенников", ДанныеДляПечати); 



1. тебе надо в таблицу значений добавить новую колонку ценыРассрочки
т.е. после
ТабТоваров.НоваяКолонка("Цена","Число"); 


добавляешь
ТабТоваров.НоваяКолонка("ЦенаРассрочка","Число"); 


2. потом, находишь в справочнике типы цен нужный для рассрочки
после
ТипЦены = ТипЦены.ТекущийЭлемент(); 


пишешь
ТипЦены.НайтиПоНаименованию("Мой Тип Цен Рассрочки",0,1);ТипЦеныРассрочки = ТипЦены.ТекущийЭлемент(); 


3. Потом после строки
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦены); 


добавляешь
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦеныРассрочки ); 


но саму процедуру ДобавитьВтаблицу() правишь, чтобы нужная колонка цены заполнялась в этом случае

4.
уже в обработке ПечатьЦенников
после строки
ПечРозн    = глФРМ(ТаблицаТоваров.Цена, ТаблицаТоваров.Валюта); 


пишешь
ПечРассрочка  = глФРМ(ТаблицаТоваров.ЦенаРассрочка, ТаблицаТоваров.Валюта); 



5. на печатной форме ценника тоже не забудь вывести
ПечРассрочка

Более подробно уже некуда рассказать"
Ну может подскажешь откуда брать цену, я попытаюсь сделать!
"Сделал все как написано

ТипЦены = СоздатьОбъект("Справочник.ТипыЦен");
Если ТипЦены.Выбрать("Типы цен",) = 0 Тогда Возврат КонецЕсли;
ТипЦены = ТипЦены.ТекущийЭлемент();

ТабТоваров = СоздатьОбъект("ТаблицаЗначений");
ТабТоваров.НоваяКолонка("Товар");
ТабТоваров.НоваяКолонка("Цена","Число");
ТабТоваров.НоваяКолонка("ЦенаРассрочка","Число");
ТабТоваров.НоваяКолонка("Единица");
ТабТоваров.НоваяКолонка("Валюта");

Если ВыбТовар.ЭтоГруппа() = 0 Тогда
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦены);
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦеныРассрочки);
Иначе
СтрТов = СоздатьОбъект("Справочник.Номенклатура");
СтрТов.ИспользоватьРодителя(ВыбТовар);
СтрТов.ВключатьПодчиненные(1);
СтрТов.ВыбратьЭлементы();

Пока СтрТов.ПолучитьЭлемент() = 1 Цикл
ТекТов = СтрТов.ТекущийЭлемент();
Если ТекТов.ЭтоГруппа() = 0 Тогда
ДобавитьВтаблицу(ТабТоваров, ТекТов, ТипЦены);
КонецЕсли;
КонецЦикла;
КонецЕсли;

Но выдает ошибку

ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦеныРассрочки<>);
{Справочник.Номенклатура.ФормаСписка.ФормаСписка.Модуль(478)}: Переменная не определена (ТипЦеныРассрочки)
При проверке модуля обнаружены синтаксические ошибки!

Что я не так сделал?"
"Сделал все как написано



ТипЦены      =      СоздатьОбъект("Справочник.ТипыЦен");
Если ТипЦены.Выбрать("Типы цен",) = 0 Тогда Возврат КонецЕсли;
ТипЦены      =      ТипЦены.ТекущийЭлемент();

ТабТоваров = СоздатьОбъект("ТаблицаЗначений");
ТабТоваров.НоваяКолонка("Товар");
ТабТоваров.НоваяКолонка("Цена","Число");
ТабТоваров.НоваяКолонка("ЦенаРассрочка","Число");
ТабТоваров.НоваяКолонка("Единица");
ТабТоваров.НоваяКолонка("Валюта");

Если ВыбТовар.ЭтоГруппа() = 0 Тогда
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦены);
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦеныРассрочки);
Иначе
СтрТов = СоздатьОбъект("Справочник.Номенклатура");
СтрТов.ИспользоватьРодителя(ВыбТовар);
СтрТов.ВключатьПодчиненные(1);
СтрТов.ВыбратьЭлементы();

Пока СтрТов.ПолучитьЭлемент() = 1 Цикл
ТекТов = СтрТов.ТекущийЭлемент();
Если ТекТов.ЭтоГруппа() = 0 Тогда
ДобавитьВтаблицу(ТабТоваров, ТекТов, ТипЦены);
КонецЕсли;
КонецЦикла;
КонецЕсли;



Но выдает ошибку



ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦеныРассрочки<>);
{Справочник.Номенклатура.ФормаСписка.ФормаСписка.Модуль(478)}: Переменная не определена (ТипЦеныРассрочки)
При проверке модуля обнаружены синтаксические ошибки!



Что я не так сделал?"
"
ТипЦены.НайтиПоНаименованию("Мой Тип Цен Рассрочки",0,1);
ТипЦеныРассрочки = ТипЦены.ТекущийЭлемент();



 

а это кто делать будет?"
"Я это делал

// загрузим расчетные цены
СпрТипыЦен = СоздатьОбъект("Справочник.ТипыЦен");
СпрТипыЦен.ВыбратьЭлементы();

Пока СпрТипыЦен.ПолучитьЭлемент() = 1 Цикл
ТипЦены = СпрТипыЦен.ТекущийЭлемент();
ТипЦены.НайтиПоНаименованию("Мой Тип Цен Рассрочки",0,1);
ТипЦеныРассрочки = ТипЦены.ТекущийЭлемент();

Если ТипЦены.Рассчитывается = 1 Тогда

// Если цена рассчитывается
Если глВернутьЦену(Номенклатура, ТипЦены, ИспользоватьДату(), ЦенаЦены, ЕдЦены, ) = 1 Тогда
ТабРасчЦен.НоваяСтрока();

ТабРасчЦен.ТипЦены = ТипЦены;
ТабРасчЦен.Цена = ЦенаЦены;
ТабРасчЦен.Единица = ЕдЦены;
ТабРасчЦен.Валюта = ТипЦены.Валюта;
ТабРасчЦен.Процент = ТипЦены.Процент;"
"> Я это делал
>
> // загрузим расчетные цены
> СпрТипыЦен = СоздатьОбъект("Справочник.ТипыЦен");
> СпрТипыЦен.ВыбратьЭлементы();
>
> Пока СпрТипыЦен.ПолучитьЭлемент() = 1 Цикл
> ТипЦены = СпрТипыЦен.ТекущийЭлемент();
> ТипЦены.НайтиПоНаименованию("Мой Тип Цен Рассрочки",0,1);
> ТипЦеныРассрочки = ТипЦены.ТекущийЭлемент();
>
> Если ТипЦены.Рассчитывается = 1 Тогда
>
> // Если цена рассчитывается
> Если глВернутьЦену(Номенклатура, ТипЦены, ИспользоватьДату(), ЦенаЦены, ЕдЦены, ) = 1 Тогда
> ТабРасчЦен.НоваяСтрока();
>
> ТабРасчЦен.ТипЦены = ТипЦены;
> ТабРасчЦен.Цена = ЦенаЦены;
> ТабРасчЦен.Единица = ЕдЦены;
> ТабРасчЦен.Валюта = ТипЦены.Валюта;
> ТабРасчЦен.Процент = ТипЦены.Процент;
Я делал пример на типовой конфигурации ТиС последних релизов
А у тебя
СпрТипыЦен = СоздатьОбъект("Справочник.ТипыЦен");СпрТипыЦен.ВыбратьЭлементы();Пока СпрТипыЦен.ПолучитьЭлемент() = 1 ЦиклТипЦены = СпрТипыЦен.ТекущийЭлемент(); 
для чего-то перебираются типы цен, не понятно. Думай. Или обратись к специалисту.
И обрати внимание на "Мой Тип Цен Рассрочки" у тебя типа цен с таким наименованием точно нет
"
Читают тему
(гостей: 1)

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