Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Как в печ.форме посчитать количество 2 страниц V   1 2 >          
bereznoy Подменю пользователя
сообщение 05.10.11, 21:48
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 329
Из: Simferopol
Спасибо сказали: 9 раз
Рейтинг: 0

Итак, пример сразу что получилось у меня
Плитка 10 кв.м. (из справочн вытащил инфу что в 1 шт = 0,02 кв.м ) делю на 0,02 и получаю 500 шт. (дальше вытаскиваю и спр. кол. в упаковке 30 шт.) делю на 30 и получается 16,666666 а мне надо сдесь четко показать что 16 упаковок и 20 штук, вопрос КАК?
Вот мой код
ОбластьМакета.Параметры.Упаковки = ВыборкаСтрокТовары.Количество 
/ ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт
/ ВыборкаСтрокТовары.Номенклатура.Пакетировка.Штупак;



Как собственно отделить целые упаковки и остаток штук ?


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

Ardi Подменю пользователя
сообщение 05.10.11, 22:00
Сообщение #2

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Упак = Цел(500/30); (=16)
допШт = 500 - Упак*30; (=20)

Если Цел(500/30)=500/30 Тогда
ОбластьМакета.Параметры.Упаковки = ""+Упак+" упаковок "+допШт+" шт.";
Иначе
ОбластьМакета.Параметры.Упаковки = ""+Упак+" упаковок";
КонецЕсли;


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

bereznoy Подменю пользователя
сообщение 05.10.11, 22:22
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 329
Из: Simferopol
Спасибо сказали: 9 раз
Рейтинг: 0

Цитата(Ardi @ 05.10.11, 23:00) *
Упак = Цел(500/30); (=16)
допШт = 500 - Упак*30; (=20)

Если Цел(500/30)=500/30 Тогда
ОбластьМакета.Параметры.Упаковки = ""+Упак+" упаковок "+допШт+" шт.";
Иначе
ОбластьМакета.Параметры.Упаковки = ""+Упак+" упаковок";
КонецЕсли;

Огромнейшее спасибо, получилось!


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

shurik_shurik Подменю пользователя
сообщение 06.10.11, 9:23
Сообщение #4

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 124
Из: Полтавская обл.
Спасибо сказали: 72 раз
Рейтинг: 0

Цитата(Ardi @ 05.10.11, 23:00) *
Упак = Цел(500/30); (=16)
допШт = 500 - Упак*30; (=20)

Если Цел(500/30)=500/30 Тогда
ОбластьМакета.Параметры.Упаковки = ""+Упак+" упаковок "+допШт+" шт.";
Иначе
ОбластьМакета.Параметры.Упаковки = ""+Упак+" упаковок";
КонецЕсли;


Извините, что вмешиваюсь, может здесь условие местами перепутано??? Если результат целого от деления равняется результату деления, значит дополнительных штук не нужно...

bereznoy Подменю пользователя
сообщение 12.10.11, 21:31
Сообщение #5

Оратор
*****
Группа: Пользователи
Сообщений: 329
Из: Simferopol
Спасибо сказали: 9 раз
Рейтинг: 0

Итак, ситуация следующая.

Пример на моем конкретном примере, товар с кодом 604, продаем плитку, 6.3 кв.м. согласно пакетировки площадь одной штучки 0.24 в упаковке 6 штук

6.3/0.24 = 26.24 т.е. 26 плиток и четверть плитки, чего естественно не может быть

При выводе на печать форма считает сколько упаковок и сколько штук, может по ее аналогии как то подкорректировать код ,что бы при вводе например 6.3 кв.м., программа предлагала или в большую или в меньшую сторону, т.е. спросила 6,24 кв.м продать или 6,48 кв.м. и никак не давала списывать через документ реализация товаров и услуг четверть плитки
вот код вывода подсчета пакетировки
ОбластьМакета.Параметры.Пакетировка = "В упаковке: " + ВыборкаСтрокТовары.Номенклатура.Пакетировка.Штупак + " шт.";
Если  ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт=0 Тогда
         Упак = 0;
Иначе
         Если  ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт = 0 или ВыборкаСтрокТовары.Номенклатура.Пакетировка.Штупак = 0 Тогда Упак = 0 Иначе
                  Упак = Цел(ВыборкаСтрокТовары.Количество / ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт / ВыборкаСтрокТовары.Номенклатура.Пакетировка.Штупак);
                  допШт = ВыборкаСтрокТовары.Количество / ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт - Упак*ВыборкаСтрокТовары.Номенклатура.Пакетировка.Штупак;
         КонецЕсли;


         Если Цел(ВыборкаСтрокТовары.Количество / ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт) = ВыборкаСтрокТовары.Количество / ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт Тогда
                 ОбластьМакета.Параметры.Упаковки = ""+Упак+" уп. "+допШт+" шт.";
         Иначе
                 ОбластьМакета.Параметры.Упаковки = ""+Упак+" уп. ";
         КонецЕсли;
КонецЕсли;


Сообщение отредактировал MATEVI - 12.10.11, 21:54
Причина редактирования: Не надо создавать кучу однотипных тем. Темы объеденены. (поправил код, а то не понятно ничего)


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

MATEVI Подменю пользователя
сообщение 12.10.11, 21:49
Сообщение #6

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2203
Из: Одесса
Спасибо сказали: 968 раз
Рейтинг: 796.3

Почитайте про:
Окр(<Число>, <Разрядность>, <РежимОкругления>)

shurik_shurik Подменю пользователя
сообщение 13.10.11, 7:30
Сообщение #7

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 124
Из: Полтавская обл.
Спасибо сказали: 72 раз
Рейтинг: 0

Можно попробовать поделить общую площадь по модулю на 0,24, и сравнить с таким же делением без модуля, сделать некоторые действию з исходной площадью и уже после этого считать упаковки..
Также, думаю, можно взять целое от деления на 0,24 потом это целое помножить на 0,24 сравнить на равенство с исходной площадью.... и т.д.

Сообщение отредактировал shurik_shurik - 13.10.11, 7:30

Ardi Подменю пользователя
сообщение 13.10.11, 13:50
Сообщение #8

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Цитата(shurik_shurik @ 06.10.11, 10:23) *
Извините, что вмешиваюсь, может здесь условие местами перепутано??? Если результат целого от деления равняется результату деления, значит дополнительных штук не нужно...

да, условие перепутал.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

bereznoy Подменю пользователя
сообщение 15.10.11, 22:48
Сообщение #9

Оратор
*****
Группа: Пользователи
Сообщений: 329
Из: Simferopol
Спасибо сказали: 9 раз
Рейтинг: 0

А подскажи плиз, где в модуле надо писать условие что при вводе количества он будет пересчитывать-округлять? а то что ищу куда добавить а не могу понять 64000000.gif

HELP ME, ну подскажите, плиз, где условие вписать надо что бы сразу после ввода количества он считал целые штуки, это касается тольк оесли ед.изм. "кв.м."

Что то типо этого?
Если Товар.Ед.изм. = "кв.м." Тогда Товар.Количесвто ....

64000000.gif


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

bereznoy Подменю пользователя
сообщение 16.10.11, 22:34
Сообщение #10

Оратор
*****
Группа: Пользователи
Сообщений: 329
Из: Simferopol
Спасибо сказали: 9 раз
Рейтинг: 0

Вроде разобрался ГДЕ, теперь больше беспокоит как прописать условие пересчета количеста
Прописал тут
// Процедура - обработчик события "ПриОкончанииРедактирования" поля табличной части "Товары"
//
Процедура ТоварыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)

    Если Не ОтменаРедактирования Тогда
        УстановитьАвтоотметкуСклада();

        ПересчитатьАвтоматическиеСкидки();
        
        мПерерасчетПроизведен = ЛОЖЬ;
    
    КонецЕсли;
//Начало моего условия
      
Сообщить("Моё условие");

//Конец моего условия
КонецПроцедуры //ТоварыПриОкончанииРедактирования()


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

logist Подменю пользователя
сообщение 16.10.11, 22:54
Сообщение #11

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Вероятно пересчет надо делать для конкретного поля, а не всей ТЧ.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

bereznoy Подменю пользователя
сообщение 16.10.11, 23:11
Сообщение #12

Оратор
*****
Группа: Пользователи
Сообщений: 329
Из: Simferopol
Спасибо сказали: 9 раз
Рейтинг: 0

Вот мои попытки, почему то условие игнорится, сообщение не выскакивает, хотя если
Сообщить(Единица);
, тогда показывает в сообщении кв.м., что я не так делаю?
код такой
Процедура ТоварыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)

    Если Не ОтменаРедактирования Тогда
        УстановитьАвтоотметкуСклада();

        ПересчитатьАвтоматическиеСкидки();
        
        мПерерасчетПроизведен = ЛОЖЬ;
    
    КонецЕсли;
    
    СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;

    Единица = СтрокаТабличнойЧасти.ЕдиницаИзмерения;
    Если Единица = "кв.м."
        Тогда Сообщить("Условие работает");
    КонецЕсли;
    
КонецПроцедуры //ТоварыПриОкончанииРедактирования()


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

logist Подменю пользователя
сообщение 16.10.11, 23:20
Сообщение #13

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(bereznoy @ 17.10.11, 0:11) *
    Если Единица = "кв.м."

А у Вас что единица измерения это текст??


Signature
Личные бесплатные консультации не даю, для этого есть форум!

bereznoy Подменю пользователя
сообщение 16.10.11, 23:24
Сообщение #14

Оратор
*****
Группа: Пользователи
Сообщений: 329
Из: Simferopol
Спасибо сказали: 9 раз
Рейтинг: 0

Цитата(logist @ 17.10.11, 0:20) *
А у Вас что единица измерения это текст??

Нет, подвязано к реквизиту ЕдиницаИзмерения, но мне надо отсеять только те товары, у которых единица измерения кв.м., как правильно сделать условия равенства?


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

logist Подменю пользователя
сообщение 16.10.11, 23:29
Сообщение #15

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(bereznoy @ 17.10.11, 0:24) *
как правильно сделать условия равенства?

Сравнить с элементом справочника в котором хранится эта единица измерения.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

bereznoy Подменю пользователя
сообщение 17.10.11, 0:22
Сообщение #16

Оратор
*****
Группа: Пользователи
Сообщений: 329
Из: Simferopol
Спасибо сказали: 9 раз
Рейтинг: 0

Я Опорукий 31000000.gif
Что то не так, сообщение не вылетает
СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
НовыйОбъект = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("кв.м.");
Единица = СтрокаТабличнойЧасти.ЕдиницаИзмерения;
    Если Единица = НовыйОбъект
        Тогда Сообщить("Условие работает");
    КонецЕсли;


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

logist Подменю пользователя
сообщение 17.10.11, 0:32
Сообщение #17

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Может бросьте это smile.gif)
А так:
    Если Единица = НовыйОбъект.Ссылка


Или может ничего не находится по наименованию?

Стоп. А справочник ЕИ наверное подчинен номенклатуре? Если так, то нужно сначала найти единицы по владельцу а потом по наименованию.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

bereznoy Подменю пользователя
сообщение 17.10.11, 20:42
Сообщение #18

Оратор
*****
Группа: Пользователи
Сообщений: 329
Из: Simferopol
Спасибо сказали: 9 раз
Рейтинг: 0

Цитата(logist @ 17.10.11, 1:32) *
Стоп. А справочник ЕИ наверное подчинен номенклатуре? Если так, то нужно сначала найти единицы по владельцу а потом по наименованию.


А будьте любезны, подскажите как найти ЕИ по владельцу ,а потом по наименованию 44000000.gif


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

bereznoy Подменю пользователя
сообщение 17.10.11, 22:19
Сообщение #19

Оратор
*****
Группа: Пользователи
Сообщений: 329
Из: Simferopol
Спасибо сказали: 9 раз
Рейтинг: 0

Что же не так, если сообщает одно и то же в сообщении
код такой
СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
НовыйОбъект = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("4");
Единица = СтрокаТабличнойЧасти.ЕдиницаИзмерения;
    Если Единица = НовыйОбъект
        Тогда Сообщить("Условие работает");
        Иначе Сообщить("Фиговый я программист");
    КонецЕсли;
    Сообщить(Единица);
    Сообщить(НовыйОбъект);




Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

logist Подменю пользователя
сообщение 17.10.11, 22:40
Сообщение #20

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(bereznoy @ 17.10.11, 21:42) *
А будьте любезны, подскажите как найти ЕИ по владельцу ,а потом по наименованию 44000000.gif

Как-то так
НайтиПоРеквизиту("Наименование","кв.м.",,Строка.Номенклатура);


p.s. откройте для себя мир встроенной справки...

Цитата(bereznoy @ 17.10.11, 23:19) *
Что же не так, если сообщает одно и то же в сообщении

Может стоит задуматься над первой строкой ошибки? Я не шучу, действительно может это не Ваше....

То что отображается одинаковое наименование, это не значит что оба значения имеют одинаковую ссылку.
Попробуйте вывести Код элемента для обеих, и Вы увидите разницу. Хотя может и чуть не учли что я писал выше.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 03.07.25, 9:10
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!