1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Автоматизация создания документа "Установка цен номенклатуры&quot

Тема в разделе "Базы данных и администрирование", создана пользователем -, 13 июн 2009.

  1. Гость

    Репутация:
    0
    Необходимо автоматически создавать документы "Ценообразование" -> "Установка цен номенклатуры".... документ создать непроблема (стандарт)

    Код:
    Док = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
    Док.Записать();
    А вот как дальше быть если я пишу следующее:

    Код:
    Док.Дата = ТекущаяДата();	
    Док.ТипыЦен.Добавить().ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розничная");
    то в поле "Тип Цен" устанавливается только 1 тип цен....
    Вопросы:
    1. как выбрать сразу несколько типов цен?
    2. как обратиться к табличной части поля(когда будет 2 типа цен) и заолнить цены выбранной номенклатуры????
     
  2. Гость

    Репутация:
    0
    Ладно... с первым пунктом я мало-мальски разобрался и сделал....
    По второму, увидел в конфиге, чтоидут записи в регистр Сведений ЦеныНоменклатуры.... как туда можно загнать эти самые записи.. через Движение или как??? Опять-таки ссылку на ТипЦен как в регистре прописать правильно?
     
  3. WildAnther

    WildAnther Гость

    Репутация:
    0
    через движение. у регистра ставиш регистратором документ с которым ты оперируеш и потом в документе в конструкторе движений настраиваеш.
    ссылку. просто создай ресурс с типом ссылка наверно.
     
  4. Гость

    Репутация:
    0
    Вот что получилось... однако при проведении документа данные из регистра не попадают в табл часть док-та, а попросту исчезают из регистра... как их связать правильно???
    Код:
    	Док.Дата = ТекущаяДата();	
    Док.ТипыЦен.Добавить().ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розничная");
    Док.Записать(РежимЗаписиДокумента.Запись);
    
    НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(Док.Ссылка);
    НаборЗаписей.Прочитать();
    
    НоваяЗапись = НаборЗаписей.Добавить();	 	
    НоваяЗапись.Период = Док.Дата;
    НоваяЗапись.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розничная");
    НоваяЗапись.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("Nokia 7600");
    НоваяЗапись.Регистратор = Док.Ссылка;
    НоваяЗапись.Цена = 4000;
    НоваяЗапись.Валюта = Справочники.Валюты.НайтиПоНаименованию("руб.");
    НоваяЗапись.ПроцентСкидкиНаценки = 40;
    НоваяЗапись.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
    НоваяЗапись.СпособРасчетаЦены = Перечисления.СпособыРасчетаЦены.ПоПроцентнойНаценкеНаБазовыйТип;
    НаборЗаписей.Записать();
    Тоже самое сделал через Свойство Движение.... Результат Аналогичный =( Вот пример кода:
    Код:
    	Док = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
    Док.Дата = ТекущаяДата();	
    Док.ТипыЦен.Добавить().ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розничная");
    
    Движение = Док.Движения.ЦеныНоменклатуры.Добавить();
    Движение.Период = Док.Дата;
    Движение.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розничная");
    Движение.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("Nokia 7600");
    Движение.Цена = 400;
    Движение.Валюта = Справочники.Валюты.НайтиПоНаименованию("руб.");
    Движение.ПроцентСкидкиНаценки = 40;
    Движение.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
    Движение.СпособРасчетаЦены = Перечисления.СпособыРасчетаЦены.ПоПроцентнойНаценкеНаБазовыйТип;
    //Движение.Регистратор = Док.Ссылка;
    
    Док.Записать(РежимЗаписиДокумента.Проведение);
     
  5. WildAnther

    WildAnther Гость

    Репутация:
    0
    Подожди подожди дак тебе надо ИЗ регистра в ДОКУМЕНТ?
     
  6. Гость

    Репутация:
    0
    Вобще смысл в том чтобы перенести цены номенклатуры из БД и создать програмно документ "Цстановка цен".... а откуда будет регистр создаваться мне вобщем без разницы...
    Дык в чем ошибка моя????
     
  7. tanat

    tanat Well-Known Member

    Репутация:
    0
    Регистрация:
    2 мар 2007
    Сообщения:
    265
    Симпатии:
    0
    В отсуствствии знаний.
    Регистр должен быть уже создан - это какбы некое хранилище данных, в которое и будете складывать свои значения цен.
    НайтиПоНаименованию - это что, для кажэдой номенклатуры так будет? Не проще использовать табличную часть документа?
     
  8. Гость

    Репутация:
    0
    Как создан регистр??? ему надо обязательно указать регистратор! А если док-нт есче не создана что тогда указывать в качестве онного???
    Так всетаки как правильн заполнить данными этот документ... почему регистры пропадают, кода я его провожу и не отображаются в документе???
     
  9. tanat

    tanat Well-Known Member

    Репутация:
    0
    Регистрация:
    2 мар 2007
    Сообщения:
    265
    Симпатии:
    0
    Проавдает не регистр, а движения по регистру по данному регистратору. И вы для себя уясните, что объект в системе уже есть. ( в конфигураторе есть документ "установкаЦенНоменклатуры"), а вот движения сами идут уже по конкретному документу, созданному в пользовательском режиме. Вы путаете базоыве понятия. Настоятельо рекомендую почитать литературу( гдето на форуме точно были ссылки, зайти на миста.ру - там почитать).

    Я так понял, что вам поставлена задача - автоматизировать установку цен номенклатуры? в самом документе все процедуры, переменные и функции уже есть.Тебе нужно лишь програмно заполнить документ и правильно задействовать существующие процедуры-функции.
     
  10. Гость

    Репутация:
    0
    Вроде шо-то получилось.... обатился к табличной части документа и заполнил цены....
     
  11. WildAnther

    WildAnther Гость

    Репутация:
    0
    Блин дак у тебя и регистр не создан.
    Сначала добавляеш новый регистр Выбираеш ему измерения ресурсы вообщем те данные которые ты хочеш хранить тут
    Потом в созданом регистре ставиш что он подчененый регистратору, и выставляеш регистратора(твой документ) потом в документе
    Делаеш "движение" конструктором выбираеш всё что надо и смотриш там код может чего сам пишеш. и всё как бы.. Типовым способом так.
    А при проведение он сам создает запись в регистре. а как бы без регистра то нифига не сделаеш...
    Если конечно я тебя правильно понял.=)
     
  12. tanat

    tanat Well-Known Member

    Репутация:
    0
    Регистрация:
    2 мар 2007
    Сообщения:
    265
    Симпатии:
    0
    Есть некое событие, например - нажатие на кнопку.
    В обработчике нажатия пишите :
    Док = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
    Док.СписокТиповЦен.Добавить( Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розничная")); // если еще одну цену надо добавить - ее также
    //указывай
    ..
    //тут перечисляешь реквизиты, которые нужно заполнить
    ..
    //попробуй вытянуть так:
    Док.ЗаполнитьТовары(Истина, Ложь, Ложь);// это процедура из обработчика нажатия кнопки "заполнить по ценам номенклатуры"
    //в этой обработке заполняется табличная часть документа. В ней вобщем копайся
    Попытка
    Док.Записать(РежимЗаписиДокумента.Проведение);
    Исключение
    Предупреждение("Невозможно провести документ.");
    КонецПопытки;

    примерно так.

    А движения будут формироваться при записи документа. и ничего тебе уже прописывать не надо. Конфа, я так понял - УТ?
     
  13. Гость

    Репутация:
    0
    Благодарю за подсказки... вроде получилось что-то.... сделал обращение к табличной части док-та (в ней и был косяк)... он сам регистры при проведении создает как ему надо.
     
  14. WildAnther

    WildAnther Гость

    Репутация:
    0
    Молодцом!
     
Загрузка...

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