7.7 Автоматическая подстановка цены

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Natasha, 19 сен 2007.

  1. TopicStarter Overlay
    Natasha
    Offline

    Natasha

    Регистрация:
    6 сен 2007
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Люди добрые :) помогите :)
    Нужно сделать автоматическую подстановку цены(из справочника) в табличную часть документа.
    Т.е. в документе мы вводим товар(из спр), а цена автоматически подставляется.

    Если бы это были рекв. шапки я БЫ сделала так :

    Процедура ПриВодеТовара()
    цена = Товар.Цена;
    КонецПроцедуры

    но в табличной части так не работает : ) как сделать так что б работало?
  2. Vlad
    Offline

    Vlad Модераторы Команда форума Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    В колонке Цена в поле формула должно быть глПересчетТаблЧасти(Контекст,Форма.ТекущаяКолонка())
  3. Steel Rain
    Offline

    Steel Rain Опытный в 1С

    Регистрация:
    29 сен 2006
    Сообщения:
    408
    Симпатии:
    2
    Баллы:
    29
    Ту же процедуру прописать на вкладке Дополнительно в свойствах колонки табличной части дока, куда товар вводиться. А вообще посмотри документы типа РасходнаяНакладная как там сделано.
  4. Amishechka
    Offline

    Amishechka Опытный в 1С

    Регистрация:
    8 сен 2006
    Сообщения:
    361
    Симпатии:
    1
    Баллы:
    26
    Ну и чего вы тут насоветовали? А если у меня в конфигурации нет процедуры глПересчетТаблЧасти? А если у меня в конфигурации вообще один документ?
    Для начала необходимо убедиться, что данная процедура вызывается при непосредственном изменении значения реквизита Товар, т.е. в свойствах реквизита на форме в поле Формула стоит вызов этой процедуры. Или какой-либо другой процедуры, которая в свою очередь вызывает эту процедуру.
    Если документ заполняется через подбор, то эта процедура должна вызываться из процедуры ОбработкаПодбора в момент добавления строки, когда уже заполнили поле Товар.
    Реквизит Цена скорее всего периодический, и в этом случае необходимо использовать метод Получить().
    Цена = Товар.Цена.Получить(ДатаДок);
    Если поле Товар находится в шапке документа, то необходимо организовать перебор строк табличной части и заполнить необходимые строки.
  5. AlexAZLK
    Offline

    AlexAZLK Опытный в 1С

    Регистрация:
    6 ноя 2008
    Сообщения:
    55
    Симпатии:
    0
    Баллы:
    26
    А можно поподробнее, я еще только учусь 1с конфигурированию, не совсем понял, где это нужно писать. Немогли бы вы написать полный текст процедуры :unsure:
  6. БулГахтер
    Offline

    БулГахтер

    Регистрация:
    8 июл 2007
    Сообщения:
    32
    Симпатии:
    0
    Баллы:
    1

    А какая конфигурация?
    В Комплексной и ТиС это уже давно реализовано и ничего придумывать не нужно, в бухгалтериии вроде тоже :)
  7. AlexAZLK
    Offline

    AlexAZLK Опытный в 1С

    Регистрация:
    6 ноя 2008
    Сообщения:
    55
    Симпатии:
    0
    Баллы:
    26
    Просто я начал писать конфигурацию с нуля, изучаю 1с по книжкам, в них нашел такое же решение, как описано в первом посте, но оно не работает...
  8. БулГахтер
    Offline

    БулГахтер

    Регистрация:
    8 июл 2007
    Сообщения:
    32
    Симпатии:
    0
    Баллы:
    1

    Тогда не знаю. Можешь посмотреть как это органицзованно в ТиС и Комплексной. в документе расходная накладная например.
    Там проде бы разбито на 2 части :
    1. При вводе нового товара
    2. При изменении товара или изменении типа цены.

    Т.е. там есть разные справочники цен, в документе задается 1 из них и при вводе товара, он берет цену из заданного справочника :)
    не знаю поможет ли это тебе :)
  9. AlexAZLK
    Offline

    AlexAZLK Опытный в 1С

    Регистрация:
    6 ноя 2008
    Сообщения:
    55
    Симпатии:
    0
    Баллы:
    26
    Спасибо за помощь, но именно это я и делаю:). Смотрю как там это реализовано, повторяю - ниче не работает, может там какая-нить галочка гда-то доложна стоять или еще что-то в таком роде??? И если не сложно напишите полностью что и где пишется... А то, блин, я уже ваще голову над этим сломал))))

    Заранее спасибо
  10. bob
    Offline

    bob Опытный в 1С

    Регистрация:
    7 май 2008
    Сообщения:
    386
    Симпатии:
    0
    Баллы:
    26
    попутно изучай отладчик, в нем отследишь момент, где у тебя косяк.
  11. AlexAZLK
    Offline

    AlexAZLK Опытный в 1С

    Регистрация:
    6 ноя 2008
    Сообщения:
    55
    Симпатии:
    0
    Баллы:
    26
    То что нужно изучать отладчик я и сам знаю;) А по моему вопросу кто-нибуть помогите пожалуйста!!! Как это реализовать?
  12. MagTux
    Offline

    MagTux Опытный в 1С

    Регистрация:
    28 ноя 2008
    Сообщения:
    58
    Симпатии:
    0
    Баллы:
    26
    На форме документа в таблице открываешь свойства поля "Цена", на вкладке Дополнительно в поле Формула вводишь "ПриВводеТовара()" без кавычек.
    В модуле формы создаёшь процедуру:
    Если Товар - реквизит таблицы
    Если цена - периодический реквизит, то
    Код:
    Процедура ПриВодеТовара()
    Если Товар.Выбран()=1 тогда
    Цена = Товар.Цена.Получить(ДатаДок);
    КонецЕсли;
    КонецПроцедуры 
    
    
    
    если не периодический, то
    Код:
    Процедура ПриВодеТовара()
    Если Товар.Выбран()=1 тогда
    Цена = Товар.Цена;
    КонецЕсли;
    КонецПроцедуры 
    
    
    
    Если Товар - реквизит шапки
    Если цена - периодический реквизит, то
    Код:
    Процедура ПриВодеТовара()
    Если Товар.Выбран()=1 тогда
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 цикл
    Цена = Товар.Цена.Получить(ДатаДок);
    КонецЦикла;
    КонецЕсли;
    КонецПроцедуры 
    
    
    
    если не периодический, то
    Код:
    Процедура ПриВодеТовара()
    Если Товар.Выбран()=1 тогда
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 цикл
    Цена = Товар.Цена;
    КонецЦикла;
    КонецЕсли;
    КонецПроцедуры 
    
    
    
    P.S. Это ответ Amishechka более разжевано
  13. LIW
    Offline

    LIW

    Регистрация:
    10 июл 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Вод код по образу и подобию как в типовой 1С Бух и пересчитываем, и цену подставляем :) вызов процедуры прописываем во всех колонках ТЧ

Поделиться этой страницей