Две цены на ценнике
14.11.2011
10:50
#11
В обработке в макет ценника я добавлял реквизит <ПечРассрочка>, но в самом модуле не могу понять откуда происходит эта обработка?
14.11.2011
10:52
#12
Если добавить в модуль ПечРассрочка = Справочник.ТипЦен.Рассрочка, он не выдает не чего
14.11.2011
10:58
#13
Учить программированию на форуме неблагодарное дело, тем более что похоже ты вообще не разбираешься где хранится цена товара!
14.11.2011
11:00
#14
"тебе реквизиты добавлять в справочник не надо!
в списке номенклатуры есть строки типа:
1. тебе надо в таблицу значений добавить новую колонку ценыРассрочки
т.е. после
добавляешь
2. потом, находишь в справочнике типы цен нужный для рассрочки
после
пишешь
3. Потом после строки
добавляешь
но саму процедуру ДобавитьВтаблицу() правишь, чтобы нужная колонка цены заполнялась в этом случае
4.
уже в обработке ПечатьЦенников
после строки
пишешь
5. на печатной форме ценника тоже не забудь вывести
ПечРассрочка
Более подробно уже некуда рассказать"
в списке номенклатуры есть строки типа:
ТипЦены = СоздатьОбъект("Справочник.ТипыЦен"); Если ТипЦены.Выбрать("Типы цен",) = 0 Тогда Возврат КонецЕсли; ТипЦены = ТипЦены.ТекущийЭлемент(); ТабТоваров = СоздатьОбъект("ТаблицаЗначений"); ТабТоваров.НоваяКолонка("Товар"); ТабТоваров.НоваяКолонка("Цена","Число"); ТабТоваров.НоваяКолонка("Единица"); ТабТоваров.НоваяКолонка("Валюта"); Если ВыбТовар.ЭтоГруппа() = 0 Тогда ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦены); Иначе СтрТов = СоздатьОбъект("Справочник.Номенклатура"); СтрТов.ИспользоватьРодителя(ВыбТовар); СтрТов.ВключатьПодчиненные(1); СтрТов.ВыбратьЭлементы(); Пока СтрТов.ПолучитьЭлемент() = 1 Цикл ТекТов = СтрТов.ТекущийЭлемент(); Если ТекТов.ЭтоГруппа() = 0 Тогда ДобавитьВтаблицу(ТабТоваров, ТекТов, ТипЦены); КонецЕсли; КонецЦикла; КонецЕсли; // упакуем данные в список ДанныеДляПечати = СоздатьОбъект("СписокЗначений"); Фирма = СокрЛП(глЗначениеПоУмолчанию("ОсновнаяФирма").ЮрЛицо.ПолнНаименование); ДанныеДляПечати.ДобавитьЗначение(Фирма , "Фирма"); ДанныеДляПечати.ДобавитьЗначение(ТипЦены.Валюта , "Валюта"); ДанныеДляПечати.ДобавитьЗначение(ТабТоваров , "Таблица");ОткрытьФормуМодально("Обработка.ПечатьЦенников", ДанныеДляПечати); 1. тебе надо в таблицу значений добавить новую колонку ценыРассрочки
т.е. после
ТабТоваров.НоваяКолонка("Цена","Число"); добавляешь
ТабТоваров.НоваяКолонка("ЦенаРассрочка","Число"); 2. потом, находишь в справочнике типы цен нужный для рассрочки
после
ТипЦены = ТипЦены.ТекущийЭлемент();
пишешь
ТипЦены.НайтиПоНаименованию("Мой Тип Цен Рассрочки",0,1);ТипЦеныРассрочки = ТипЦены.ТекущийЭлемент(); 3. Потом после строки
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦены);
добавляешь
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦеныРассрочки );
но саму процедуру ДобавитьВтаблицу() правишь, чтобы нужная колонка цены заполнялась в этом случае
4.
уже в обработке ПечатьЦенников
после строки
ПечРозн = глФРМ(ТаблицаТоваров.Цена, ТаблицаТоваров.Валюта);
пишешь
ПечРассрочка = глФРМ(ТаблицаТоваров.ЦенаРассрочка, ТаблицаТоваров.Валюта);
5. на печатной форме ценника тоже не забудь вывести
ПечРассрочка
Более подробно уже некуда рассказать"
14.11.2011
12:13
#16
"Сделал все как написано
ТипЦены = СоздатьОбъект("Справочник.ТипыЦен");
Если ТипЦены.Выбрать("Типы цен",) = 0 Тогда Возврат КонецЕсли;
ТипЦены = ТипЦены.ТекущийЭлемент();
ТабТоваров = СоздатьОбъект("ТаблицаЗначений");
ТабТоваров.НоваяКолонка("Товар");
ТабТоваров.НоваяКолонка("Цена","Число");
ТабТоваров.НоваяКолонка("ЦенаРассрочка","Число");
ТабТоваров.НоваяКолонка("Единица");
ТабТоваров.НоваяКолонка("Валюта");
Если ВыбТовар.ЭтоГруппа() = 0 Тогда
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦены);
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦеныРассрочки);
Иначе
СтрТов = СоздатьОбъект("Справочник.Номенклатура");
СтрТов.ИспользоватьРодителя(ВыбТовар);
СтрТов.ВключатьПодчиненные(1);
СтрТов.ВыбратьЭлементы();
Пока СтрТов.ПолучитьЭлемент() = 1 Цикл
ТекТов = СтрТов.ТекущийЭлемент();
Если ТекТов.ЭтоГруппа() = 0 Тогда
ДобавитьВтаблицу(ТабТоваров, ТекТов, ТипЦены);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Но выдает ошибку
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦеныРассрочки<>>);
{Справочник.Номенклатура.ФормаСписка.ФормаСписка.Модуль(478)}: Переменная не определена (ТипЦеныРассрочки)
При проверке модуля обнаружены синтаксические ошибки!
Что я не так сделал?"
ТипЦены = СоздатьОбъект("Справочник.ТипыЦен");
Если ТипЦены.Выбрать("Типы цен",) = 0 Тогда Возврат КонецЕсли;
ТипЦены = ТипЦены.ТекущийЭлемент();
ТабТоваров = СоздатьОбъект("ТаблицаЗначений");
ТабТоваров.НоваяКолонка("Товар");
ТабТоваров.НоваяКолонка("Цена","Число");
ТабТоваров.НоваяКолонка("ЦенаРассрочка","Число");
ТабТоваров.НоваяКолонка("Единица");
ТабТоваров.НоваяКолонка("Валюта");
Если ВыбТовар.ЭтоГруппа() = 0 Тогда
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦены);
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦеныРассрочки);
Иначе
СтрТов = СоздатьОбъект("Справочник.Номенклатура");
СтрТов.ИспользоватьРодителя(ВыбТовар);
СтрТов.ВключатьПодчиненные(1);
СтрТов.ВыбратьЭлементы();
Пока СтрТов.ПолучитьЭлемент() = 1 Цикл
ТекТов = СтрТов.ТекущийЭлемент();
Если ТекТов.ЭтоГруппа() = 0 Тогда
ДобавитьВтаблицу(ТабТоваров, ТекТов, ТипЦены);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Но выдает ошибку
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦеныРассрочки<>>);
{Справочник.Номенклатура.ФормаСписка.ФормаСписка.Модуль(478)}: Переменная не определена (ТипЦеныРассрочки)
При проверке модуля обнаружены синтаксические ошибки!
Что я не так сделал?"
14.11.2011
12:16
#17
"Сделал все как написано
ТипЦены = СоздатьОбъект("Справочник.ТипыЦен");
Если ТипЦены.Выбрать("Типы цен",) = 0 Тогда Возврат КонецЕсли;
ТипЦены = ТипЦены.ТекущийЭлемент();
ТабТоваров = СоздатьОбъект("ТаблицаЗначений");
ТабТоваров.НоваяКолонка("Товар");
ТабТоваров.НоваяКолонка("Цена","Число");
ТабТоваров.НоваяКолонка("ЦенаРассрочка","Число");
ТабТоваров.НоваяКолонка("Единица");
ТабТоваров.НоваяКолонка("Валюта");
Если ВыбТовар.ЭтоГруппа() = 0 Тогда
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦены);
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦеныРассрочки);
Иначе
СтрТов = СоздатьОбъект("Справочник.Номенклатура");
СтрТов.ИспользоватьРодителя(ВыбТовар);
СтрТов.ВключатьПодчиненные(1);
СтрТов.ВыбратьЭлементы();
Пока СтрТов.ПолучитьЭлемент() = 1 Цикл
ТекТов = СтрТов.ТекущийЭлемент();
Если ТекТов.ЭтоГруппа() = 0 Тогда
ДобавитьВтаблицу(ТабТоваров, ТекТов, ТипЦены);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Но выдает ошибку
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦеныРассрочки<>>);
{Справочник.Номенклатура.ФормаСписка.ФормаСписка.Модуль(478)}: Переменная не определена (ТипЦеныРассрочки)
При проверке модуля обнаружены синтаксические ошибки!
Что я не так сделал?"
ТипЦены = СоздатьОбъект("Справочник.ТипыЦен");
Если ТипЦены.Выбрать("Типы цен",) = 0 Тогда Возврат КонецЕсли;
ТипЦены = ТипЦены.ТекущийЭлемент();
ТабТоваров = СоздатьОбъект("ТаблицаЗначений");
ТабТоваров.НоваяКолонка("Товар");
ТабТоваров.НоваяКолонка("Цена","Число");
ТабТоваров.НоваяКолонка("ЦенаРассрочка","Число");
ТабТоваров.НоваяКолонка("Единица");
ТабТоваров.НоваяКолонка("Валюта");
Если ВыбТовар.ЭтоГруппа() = 0 Тогда
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦены);
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦеныРассрочки);
Иначе
СтрТов = СоздатьОбъект("Справочник.Номенклатура");
СтрТов.ИспользоватьРодителя(ВыбТовар);
СтрТов.ВключатьПодчиненные(1);
СтрТов.ВыбратьЭлементы();
Пока СтрТов.ПолучитьЭлемент() = 1 Цикл
ТекТов = СтрТов.ТекущийЭлемент();
Если ТекТов.ЭтоГруппа() = 0 Тогда
ДобавитьВтаблицу(ТабТоваров, ТекТов, ТипЦены);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Но выдает ошибку
ДобавитьВтаблицу(ТабТоваров, ВыбТовар, ТипЦеныРассрочки<>>);
{Справочник.Номенклатура.ФормаСписка.ФормаСписка.Модуль(478)}: Переменная не определена (ТипЦеныРассрочки)
При проверке модуля обнаружены синтаксические ошибки!
Что я не так сделал?"
14.11.2011
12:17
#18
"
а это кто делать будет?"
ТипЦены.НайтиПоНаименованию("Мой Тип Цен Рассрочки",0,1);
ТипЦеныРассрочки = ТипЦены.ТекущийЭлемент(); а это кто делать будет?"
14.11.2011
12:24
#19
"Я это делал
// загрузим расчетные цены
СпрТипыЦен = СоздатьОбъект("Справочник.ТипыЦен");
СпрТипыЦен.ВыбратьЭлементы();
Пока СпрТипыЦен.ПолучитьЭлемент() = 1 Цикл
ТипЦены = СпрТипыЦен.ТекущийЭлемент();
ТипЦены.НайтиПоНаименованию("Мой Тип Цен Рассрочки",0,1);
ТипЦеныРассрочки = ТипЦены.ТекущийЭлемент();
Если ТипЦены.Рассчитывается = 1 Тогда
// Если цена рассчитывается
Если глВернутьЦену(Номенклатура, ТипЦены, ИспользоватьДату(), ЦенаЦены, ЕдЦены, ) = 1 Тогда
ТабРасчЦен.НоваяСтрока();
ТабРасчЦен.ТипЦены = ТипЦены;
ТабРасчЦен.Цена = ЦенаЦены;
ТабРасчЦен.Единица = ЕдЦены;
ТабРасчЦен.Валюта = ТипЦены.Валюта;
ТабРасчЦен.Процент = ТипЦены.Процент;"
// загрузим расчетные цены
СпрТипыЦен = СоздатьОбъект("Справочник.ТипыЦен");
СпрТипыЦен.ВыбратьЭлементы();
Пока СпрТипыЦен.ПолучитьЭлемент() = 1 Цикл
ТипЦены = СпрТипыЦен.ТекущийЭлемент();
ТипЦены.НайтиПоНаименованию("Мой Тип Цен Рассрочки",0,1);
ТипЦеныРассрочки = ТипЦены.ТекущийЭлемент();
Если ТипЦены.Рассчитывается = 1 Тогда
// Если цена рассчитывается
Если глВернутьЦену(Номенклатура, ТипЦены, ИспользоватьДату(), ЦенаЦены, ЕдЦены, ) = 1 Тогда
ТабРасчЦен.НоваяСтрока();
ТабРасчЦен.ТипЦены = ТипЦены;
ТабРасчЦен.Цена = ЦенаЦены;
ТабРасчЦен.Единица = ЕдЦены;
ТабРасчЦен.Валюта = ТипЦены.Валюта;
ТабРасчЦен.Процент = ТипЦены.Процент;"
14.11.2011
12:46
#20
"> Я это делал
>
> // загрузим расчетные цены
> СпрТипыЦен = СоздатьОбъект("Справочник.ТипыЦен");
> СпрТипыЦен.ВыбратьЭлементы();
>
> Пока СпрТипыЦен.ПолучитьЭлемент() = 1 Цикл
> ТипЦены = СпрТипыЦен.ТекущийЭлемент();
> ТипЦены.НайтиПоНаименованию("Мой Тип Цен Рассрочки",0,1);
> ТипЦеныРассрочки = ТипЦены.ТекущийЭлемент();
>
> Если ТипЦены.Рассчитывается = 1 Тогда
>
> // Если цена рассчитывается
> Если глВернутьЦену(Номенклатура, ТипЦены, ИспользоватьДату(), ЦенаЦены, ЕдЦены, ) = 1 Тогда
> ТабРасчЦен.НоваяСтрока();
>
> ТабРасчЦен.ТипЦены = ТипЦены;
> ТабРасчЦен.Цена = ЦенаЦены;
> ТабРасчЦен.Единица = ЕдЦены;
> ТабРасчЦен.Валюта = ТипЦены.Валюта;
> ТабРасчЦен.Процент = ТипЦены.Процент;
Я делал пример на типовой конфигурации ТиС последних релизов
А у тебя
>
> // загрузим расчетные цены
> СпрТипыЦен = СоздатьОбъект("Справочник.ТипыЦен");
> СпрТипыЦен.ВыбратьЭлементы();
>
> Пока СпрТипыЦен.ПолучитьЭлемент() = 1 Цикл
> ТипЦены = СпрТипыЦен.ТекущийЭлемент();
> ТипЦены.НайтиПоНаименованию("Мой Тип Цен Рассрочки",0,1);
> ТипЦеныРассрочки = ТипЦены.ТекущийЭлемент();
>
> Если ТипЦены.Рассчитывается = 1 Тогда
>
> // Если цена рассчитывается
> Если глВернутьЦену(Номенклатура, ТипЦены, ИспользоватьДату(), ЦенаЦены, ЕдЦены, ) = 1 Тогда
> ТабРасчЦен.НоваяСтрока();
>
> ТабРасчЦен.ТипЦены = ТипЦены;
> ТабРасчЦен.Цена = ЦенаЦены;
> ТабРасчЦен.Единица = ЕдЦены;
> ТабРасчЦен.Валюта = ТипЦены.Валюта;
> ТабРасчЦен.Процент = ТипЦены.Процент;
Я делал пример на типовой конфигурации ТиС последних релизов
А у тебя
СпрТипыЦен = СоздатьОбъект("Справочник.ТипыЦен");СпрТипыЦен.ВыбратьЭлементы();Пока СпрТипыЦен.ПолучитьЭлемент() = 1 ЦиклТипЦены = СпрТипыЦен.ТекущийЭлемент();
для чего-то перебираются типы цен, не понятно. Думай. Или обратись к специалисту.
И обрати внимание на "Мой Тип Цен Рассрочки" у тебя типа цен с таким наименованием точно нет" Читают тему
(гостей: 1)