Округление цены в печати ценников , Убрать округление цены и поменять код
01.04.19, 13:21
Общительный
Группа: Пользователи
Сообщений: 20
Спасибо сказали: 0 раз
Рейтинг: 0
1с 8.2.19.130 УПП для Украины 1.3
Есть обработка Печать ценников.
В ней есть строка
Цена = Ценообразование.ОкруглитьЦену(Цена, ТипЦен.ПорядокОкругления, ТипЦен.ОкруглятьВБольшуюСторону);
Как сделать что бы округления не было?
И еще вопрос посложнее.
ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
ТоварКод = "Артикул" ;
ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
ТоварКод = "Код" ;
Иначе
ТоварКод = "" ;
КонецЕсли ;
Под названием печатает Код товара. Как заставить печатать код стыковки (Свойства номенклатуры-Свойство-СтыковкаТоваровТЦУ)
Вся обработка: #Если Клиент Тогда
Процедура ЗаполнитьПостроительОтчета() Экспорт
ПостроительОтчета.Параметры.Вставить("ПустаяХарактеристика" , Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка());
ТекстЗапроса = "
|ВЫБРАТЬ
| ИСТИНА КАК Печать,
| СпрНоменклатура.Номенклатура КАК Номенклатура,
| СпрНоменклатура.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| СпрНоменклатура.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
| 0 КАК Цена,
| 1 КАК Количество
|ИЗ
| (ВЫБРАТЬ
| СпрНоменклатура.Ссылка КАК Номенклатура,
| &ПустаяХарактеристика КАК ХарактеристикаНоменклатуры
| ИЗ
| Справочник.Номенклатура КАК СпрНоменклатура
| ГДЕ НЕ СпрНоменклатура.ЭтоГруппа
| {ГДЕ
| СпрНоменклатура.Ссылка.* КАК Номенклатура}
| ОБЪЕДИНИТЬ ВСЕ
| ВЫБРАТЬ
| СпрХарактеристики.Владелец,
| СпрХарактеристики.Ссылка
| ИЗ
| Справочник.ХарактеристикиНоменклатуры КАК СпрХарактеристики
| {ГДЕ
| СпрХарактеристики.Владелец.* КАК Номенклатура,
| СпрХарактеристики.Ссылка.* КАК ХарактеристикаНоменклатуры}
| ) КАК СпрНоменклатура
|" ;
Если ТолькоИмеющиесяВНаличии Тогда
ТекстЗапроса = ТекстЗапроса + "
|ЛЕВОЕ СОЕДИНЕНИЕ
| (ВЫБРАТЬ
| НаСкладе.Номенклатура,
| НаСкладе.ХарактеристикаНоменклатуры,
| СУММА(НаСкладе.Количество) КАК Количество
| ИЗ
| (ВЫБРАТЬ
| НаСкладе.Номенклатура,
| НаСкладе.ХарактеристикаНоменклатуры,
| НаСкладе.КоличествоОстаток КАК Количество
| ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(, {Номенклатура.* КАК Номенклатура,
| ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
| Склад.* КАК Склад}) КАК НаСкладе
| ОБЪЕДИНИТЬ ВСЕ
| ВЫБРАТЬ
| ВРознице.Номенклатура,
| ВРознице.ХарактеристикаНоменклатуры,
| ВРознице.КоличествоОстаток КАК Количество
| ИЗ
| РегистрНакопления.ТоварыВРознице.Остатки(, {Номенклатура.* КАК Номенклатура,
| ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
| Склад.* КАК Склад}) КАК ВРознице
| ОБЪЕДИНИТЬ ВСЕ
| ВЫБРАТЬ
| ВНТТ.Номенклатура,
| ВНТТ.ХарактеристикаНоменклатуры,
| ВНТТ.КоличествоОстаток КАК Количество
| ИЗ
| РегистрНакопления.ТоварыВНТТ.Остатки(, {Номенклатура.* КАК Номенклатура,
| ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
| Склад.* КАК Склад}) КАК ВНТТ
| ) КАК НаСкладе
| СГРУППИРОВАТЬ ПО
| НаСкладе.Номенклатура,
| НаСкладе.ХарактеристикаНоменклатуры
| ) КАК НаСкладе
|ПО
| СпрНоменклатура.Номенклатура = НаСкладе.Номенклатура
| И СпрНоменклатура.ХарактеристикаНоменклатуры = НаСкладе.ХарактеристикаНоменклатуры
|ГДЕ
| ЕСТЬNULL(НаСкладе.Количество, 0) > 0
|" ;
КонецЕсли ;
ТекстЗапроса = ТекстЗапроса + "
|УПОРЯДОЧИТЬ ПО
| СпрНоменклатура.Номенклатура.Наименование,
| СпрНоменклатура.ХарактеристикаНоменклатуры.Наименование
|" ;
СтруктураПредставлениеПолей = Новый Структура(
"Номенклатура, ХарактеристикаНоменклатуры, Склад" ,
"Номенклатура" , "Характеристика номенклатуры" , "Склад" );
ПостроительОтчета.Текст = ТекстЗапроса;
ПостроительОтчета.ЗаполнитьНастройки();
СоответствиеДоступныхОтборов = Новый Соответствие;
СоответствиеДоступныхОтборов.Вставить("Номенклатура" , 0 );
СоответствиеДоступныхОтборов.Вставить("ХарактеристикаНоменклатуры" , 0 );
СоответствиеДоступныхОтборов.Вставить("Склад" , 0 );
Для Каждого ДоступноеПоле Из ПостроительОтчета.ДоступныеПоля Цикл
Если СоответствиеДоступныхОтборов[ДоступноеПоле.Имя] =Неопределено Тогда
ДоступноеПоле.Отбор = Ложь ;
Иначе
ДоступноеПоле.Отбор = Истина ;
КонецЕсли ;
КонецЦикла ;
МассивОтбора = Новый Массив;
МассивОтбора.Добавить("Номенклатура" );
МассивОтбора.Добавить("ХарактеристикаНоменклатуры" );
Если ТолькоИмеющиесяВНаличии Тогда
МассивОтбора.Добавить("Склад" );
КонецЕсли ;
Для Каждого ЭлементОтбора Из МассивОтбора Цикл
Если ПостроительОтчета.Отбор.Найти(ЭлементОтбора) = Неопределено Тогда
ПостроительОтчета.Отбор.Добавить(ЭлементОтбора);
КонецЕсли ;
КонецЦикла ;
УправлениеОтчетами.ЗаполнитьПредставленияПолей(СтруктураПредставлениеПолей, ПостроительОтчета);
КонецПроцедуры
Процедура ПерезаполнитьЦены() Экспорт
СтруктураЗначений = Новый Структура;
СтруктураЗначений.Вставить("НовыйТипЦен" , ТипЦен);
ЗапросПоЦенам = Ценообразование.СформироватьЗапросПоЦенам(СтруктураЗначений,
Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатуры,
Товары.ВыгрузитьКолонку("Номенклатура" ),
РабочаяДата,
Неопределено ).Выгрузить();
ПустаяХарактеристика = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка();
ТипЦенРассчитывается = ТипЦен.Рассчитывается;
СтруктураКурса = МодульВалютногоУчета.ПолучитьКурсВалюты(Валюта, РабочаяДата);
Курс = СтруктураКурса.Курс;
Кратность = СтруктураКурса.Кратность;
Для Каждого СтрокаТовара Из Товары Цикл
ХарактеристикаНоменклатуры = СтрокаТовара.ХарактеристикаНоменклатуры;
СтруктураПоиска = Новый Структура("Номенклатура" , СтрокаТовара.Номенклатура);
СтрокиЦен = ЗапросПоЦенам.НайтиСтроки(СтруктураПоиска);
СтрокаБезХарактеристики = Неопределено ;
СтрокаСХарактеристикой = Неопределено ;
Для Каждого СтрокаЦен Из СтрокиЦен Цикл
Если СтрокаЦен.ХарактеристикаНоменклатуры = ПустаяХарактеристика Тогда
СтрокаБезХарактеристики = СтрокаЦен;
ИначеЕсли СтрокаЦен.ХарактеристикаНоменклатуры = ХарактеристикаНоменклатуры Тогда
СтрокаСХарактеристикой = СтрокаЦен;
КонецЕсли ;
КонецЦикла ;
Если СтрокаСХарактеристикой <> Неопределено Тогда
НайденнаяСтрока = СтрокаСХарактеристикой;
ИначеЕсли СтрокаБезХарактеристики <> Неопределено Тогда
НайденнаяСтрока = СтрокаБезХарактеристики;
Иначе
НайденнаяСтрока = Неопределено ;
КонецЕсли ;
Если (НайденнаяСтрока <> Неопределено ) И (НайденнаяСтрока.Цена <> 0 ) Тогда
Цена = НайденнаяСтрока.Цена * (1 + ?(ТипЦенРассчитывается, НайденнаяСтрока.ПроцентСкидкиНаценки / 100 , 0 ));
Цена = Ценообразование.ОкруглитьЦену(Цена, ТипЦен.ПорядокОкругления, ТипЦен.ОкруглятьВБольшуюСторону);
Цена = Ценообразование.ПересчитатьЦенуПриИзмененииВалюты(Цена, НайденнаяСтрока.ВалютаЦены, Валюта, Курс, Кратность);
СтрокаТовара.ЕдиницаИзмерения = НайденнаяСтрока.ЕдиницаИзмеренияЦены;
Иначе
Цена = 0 ;
КонецЕсли ;
СтрокаТовара.Цена = Цена;
КонецЦикла ;
КонецПроцедуры
Функция ПечатьЦенника() Экспорт
Если НЕ ЗначениеЗаполнено(Организация) Тогда
Предупреждение("Не выбрана организация!" );
Возврат Неопределено ;
КонецЕсли ;
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Ценник" ;
Макет = ПолучитьМакет("Ценник" );
КодЯзыкаПечать = ЛокализацияПовтИсп.ПолучитьЯзыкФормированияПечатныхФормДокументов();
Макет.КодЯзыкаМакета = КодЯзыкаПечать;
ОбластьЦенника = Макет.ПолучитьОбласть("Строка|Столбец" );
ДатаПечати = РабочаяДата;
ТекСтолбец = 0 ;
ТекСтрока = 0 ;
ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
ТоварКод = "Артикул" ;
ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
ТоварКод = "Код" ;
Иначе
ТоварКод = "" ;
КонецЕсли ;
Для Каждого СтрокаТаблицы Из Товары Цикл
Если СтрокаТаблицы.Печать Тогда
Для Тмп = 1 По СтрокаТаблицы.Количество Цикл
ОбластьЦенника.Параметры.Заполнить(СтрокаТаблицы);
ОбластьЦенника.Параметры.НоменклатураНаименование = СтрокаТаблицы.Номенклатура.НаименованиеПолное + ?(ТоварКод <> "" , " " + СокрЛП(СтрокаТаблицы.Номенклатура[ТоварКод]), "" );
ОбластьЦенника.Параметры.ХарактеристикаНаименование = СтрокаТаблицы.ХарактеристикаНоменклатуры;
ОбластьЦенника.Параметры.ЕдиницаНаименование = СтрокаТаблицы.ЕдиницаИзмерения;
ОбластьЦенника.Параметры.Цена = ОбщегоНазначения.ФорматСумм(СтрокаТаблицы.Цена, Валюта, "00" );
ОбластьЦенника.Параметры.ДатаПечати = ДатаПечати;
ОбластьЦенника.Параметры.Организация = Организация;
ОбластьЦенника.Параметры.ОрганизацияНаименование = Организация;
Если ТекСтолбец = 0 Тогда
ТабДокумент.Вывести(ОбластьЦенника);
Иначе
ТабДокумент.Присоединить(ОбластьЦенника);
КонецЕсли ;
ТекСтолбец = ТекСтолбец + 1 ;
Если ТекСтолбец = 5 Тогда
ТекСтрока = ТекСтрока + 1 ;
ТекСтолбец = 0 ;
КонецЕсли ;
Если ТекСтрока = 3 Тогда
ТекСтрока = 0 ;
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли ;
КонецЦикла ;
КонецЕсли ;
КонецЦикла ;
ТабДокумент.ТолькоПросмотр = Истина ;
Возврат ТабДокумент;
КонецФункции
Функция ПроверитьПараметрыЗаполненияЦен() Экспорт
Если НЕ ЗначениеЗаполнено(ТипЦен) Тогда
ОбщегоНазначения.СообщитьОбОшибке("Не выбран тип цен! Укажите тип цен и повторите перезаполнение цен." );
Возврат Ложь ;
КонецЕсли ;
Если НЕ ЗначениеЗаполнено(Валюта) Тогда
ОбщегоНазначения.СообщитьОбОшибке("Не выбрана валюта! Укажите валюту и повторите перезаполнение цен." );
Возврат Ложь ;
КонецЕсли ;
Возврат Истина ;
КонецФункции
#КонецЕсли
01.04.19, 14:12
Завсегдатай
Группа: Местный
Сообщений: 214
Из: Сумы
Спасибо сказали: 38 раз
Рейтинг: 0
Цитата(yoj @ 01.04.19, 13:21)
Как сделать что бы округления не было?
В типе цены убрать округление
04.04.19, 10:35
Завсегдатай
Группа: Местный
Сообщений: 214
Из: Сумы
Спасибо сказали: 38 раз
Рейтинг: 0
yoj @ 01.04.19, 15:04
,
Или Вы меня не поняли, или я Вас. В режиме предприятия убрать округление в типе цены
21.06.19, 12:03
Молчаливый
Группа: Пользователи
Сообщений: 9
Из: Киев
Спасибо сказали: 2 раз
Рейтинг: 0
yoj @ 01.04.19, 14:21
,
Все просто
А по-поводу свойства, делается запрос к РегиструСведений "ЗначенияСвойствОбъектов", устанавливается условие по объекту и свойству и все
Запрос такого плана:
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
ЗначенияСвойствОбъектов.Значение
ИЗ
РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
ЗначенияСвойствОбъектов.Объект = &Объект
И ЗначенияСвойствОбъектов.Свойство = &Свойство" ;
Запрос.УстановитьПараметр("Объект" , ТвойОбъект);
Запрос.УСтановитьПараметр("Свойство" , ПланыВидовХарактеристик.СвойстваОбъектов.НАйтиПоНаименование("НАзваниеСвойства" ));
Не нашли ответа на свой вопрос?
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!