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

Хранилище

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

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



> Як отримати значення реквізиту номенклатури? , "Торговля + склад" Ред. 9.2          
Oligarch Подменю пользователя
сообщение 10.06.17, 11:36
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Из: Львів
Спасибо сказали: 0 раз
Рейтинг: 0

Доброго дня. Допоможіть, будь-ласка, вирішити питання. В табличній частині документа відображається крім кількості, кількість зі знижкою. Потрібно для деяких товарів відключити знижку по кількості. Для цього в модулі номенклатури додав галочку, але не знаю, як отримати значення реквізиту при додаванні номенклатури в табличну частину.



Частина процедури оригіналу
Процедура глПересчетТаблЧасти(Конт,ИмяРеквизита, ПараметрыРозничнойЦены = 0) Экспорт  
    
    Перем ВремКоэфф, ВремЦена, НоваяНоменклатура;
    Перем ЕстьСкидка;    // 1 - в документе есть скидка, 0 - скидки нет
    Перем ПроцентСкидки;
    Перем ЕстьНДС, ЕстьНП, УчитыватьНДС, УчитыватьНП;
    Перем ЦенаЦены, ЕдЦены, ВалютаЦены;
                                                  
    ДатаДок    = Конт.ДатаДок;
    
    
Если ИмяРеквизита = "КоличествоБезСкидки" Тогда
        Конт.Количество = Конт.КоличествоБезСкидки - Конт.КоличествоБезСкидки * Конт.Договор.ПроцЗнижПоКсті / 100;
        Если глЕстьРеквизитМнЧ("БезСкидки",  Конт.Вид()) = 1 Тогда
            Конт.БезСкидки = Конт.Цена*Конт.Количество;
            Конт.Сумма = Конт.Цена*Конт.Количество-ПроцентСкидки/100*Конт.Цена*Конт.Количество;
            Конт.СуммаСкидки = Конт.БезСкидки - Конт.Сумма;
        Иначе
            Конт.Сумма = Конт.Цена*Конт.Количество-ПроцентСкидки/100*Конт.Цена*Конт.Количество;
        КонецЕсли;
        Если ЕстьНП = 1 Тогда
            глРасчетНалога(Конт,"НП");
        КонецЕсли;
        Если ЕстьНДС = 1 Тогда
            глРасчетНалога(Конт,"НДС");
        КонецЕсли;
            
КонецПроцедуры // глПересчетТаблЧасти()


Пробував так
Процедура глПересчетТаблЧасти(Конт,ИмяРеквизита, ПараметрыРозничнойЦены = 0) Экспорт  
    
    Перем ВремКоэфф, ВремЦена, НоваяНоменклатура;
    Перем ЕстьСкидка;    // 1 - в документе есть скидка, 0 - скидки нет
    Перем ПроцентСкидки;
    Перем ЕстьНДС, ЕстьНП, УчитыватьНДС, УчитыватьНП;
    Перем ЦенаЦены, ЕдЦены, ВалютаЦены;
                                                  
    ДатаДок    = Конт.ДатаДок;
    
    
Если ИмяРеквизита = "КоличествоБезСкидки" Тогда
        Если ЗнижкаПоКількості = 1 Тогда
            КоефіцієнтЗнижкиПоКількості = 0;
        Иначе
            КоефіцієнтЗнижкиПоКількості = 1;
    КонецЕсли;
        Конт.Количество = Конт.КоличествоБезСкидки - Конт.КоличествоБезСкидки * Конт.Договор.ПроцЗнижПоКсті / 100*  КоефіцієнтЗнижкиПоКількості;
        Если глЕстьРеквизитМнЧ("БезСкидки",  Конт.Вид()) = 1 Тогда
            Конт.БезСкидки = Конт.Цена*Конт.Количество;
            Конт.Сумма = Конт.Цена*Конт.Количество-ПроцентСкидки/100*Конт.Цена*Конт.Количество;
            Конт.СуммаСкидки = Конт.БезСкидки - Конт.Сумма;
        Иначе
            Конт.Сумма = Конт.Цена*Конт.Количество-ПроцентСкидки/100*Конт.Цена*Конт.Количество;
        КонецЕсли;
        Если ЕстьНП = 1 Тогда
            глРасчетНалога(Конт,"НП");
        КонецЕсли;
        Если ЕстьНДС = 1 Тогда
            глРасчетНалога(Конт,"НДС");
        КонецЕсли;
            
КонецПроцедуры // глПересчетТаблЧасти()


Не знаю як правильно отримати значення реквізиту "ЗнижкаПоКількості"...

Сообщение отредактировал Vofka - 12.06.17, 10:57

Abyss Подменю пользователя
сообщение 10.06.17, 12:58
Сообщение #2

Молчаливый
*
Группа: Пользователи
Сообщений: 9
Спасибо сказали: 1 раз
Рейтинг: 0

Oligarch @ Сегодня, 12:36 * ,
Если Конт.Количество это количество из строки ТЧ, то по аналогии Конт.ТМЦ - это товар из строки. Соответственно, ЗнижкаПоКількості будет Конт.ТМЦ.ЗнижкаПоКількості, при условии что ЗнижкаПоКількості является реквизитом справочника ТМЦ

Oligarch Подменю пользователя
сообщение 10.06.17, 14:18
Сообщение #3

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Из: Львів
Спасибо сказали: 0 раз
Рейтинг: 0

Abyss @ Сегодня, 13:58 * ,
{Глобальный модуль(3325)}: Поле агрегатного объекта не обнаружено (ТМЦ)


Прив'язка до одиниці виміру тоже не дала результату:

Если ИмяРеквизита = "КоличествоБезСкидки" Тогда
        Если Конт.Единица = "шт" Тогда
            КоефіцієнтЗнижкиПоКількості = 0;
        Иначе
            КоефіцієнтЗнижкиПоКількості = 1;
        КонецЕсли;

Сообщить (Конт.Единица)
виводить пусту строку...




Abyss Подменю пользователя
сообщение 10.06.17, 17:50
Сообщение #4

Молчаливый
*
Группа: Пользователи
Сообщений: 9
Спасибо сказали: 1 раз
Рейтинг: 0

Oligarch @ Сегодня, 15:18 * ,
Вместо ТМЦ напишите Номенклатура. Но там еще периодический реквизит. Я уже не помню как получать у них значения

Спасибо сказали: Oligarch,

Oligarch Подменю пользователя
сообщение 11.06.17, 1:01
Сообщение #5

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Из: Львів
Спасибо сказали: 0 раз
Рейтинг: 0

Вдалось вирішити шляхом додавання нового реквізиту в табличну частину "ФільтрЗнижкиПоКількості" (тип: строка)
В процедурі перерахунку табличної частини прописав:
Конт.ФільтрЗнижкиПоКількості = Конт.Номенклатура.ЗнижкаПоКількості;
    Если Конт.ФільтрЗнижкиПоКількості = "1" Тогда
        КоефіцієнтЗнижкиПоКількості = 0;
    Иначе
        КоефіцієнтЗнижкиПоКількості = 1;
    КонецЕсли;

Всім дякую за допомогу!

mister-x Подменю пользователя
сообщение 12.06.17, 21:46
Сообщение #6

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

Цитата(Oligarch @ 10.06.17, 11:36) *
Не знаю як правильно отримати значення реквізиту "ЗнижкаПоКількості"...

якщо код писати у глобальному модулі у процедурі глПересчетТаблЧасти, то для доступу до значення періодичного реквізиту пишемо
Конт.Номенклатура.ЗнижкаПоКількості.Получить(Конт.ДатаДок)

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


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

 

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