7.7 Как Тип цен в спр.Контрагенты сделать составным?

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

  1. TopicStarter Overlay
    Chudka
    Offline

    Chudka Опытный в 1С

    Регистрация:
    8 окт 2009
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Помогите, пожалуйста. В семерке совсем не шарю, а сделать требуют. :unsure:

    Торговля+Склад
    [​IMG]
    В справочнике «Контрагенты» помимо основной цены ("Тип цен по умолчанию": Закупочная, мелкооптовая, оптовая или розничная) необходимо добавить таблицу для выбора цен на отдельные товары (группы товаров!!!).
    И в документах при выборе товара должна выбираться цена на товар (группу выбранного товара) указанная в данных Контрагента. Можно добавить поле в табличной части «тип цены», которое должно заполняться автоматически при выборе товара и при его изменении вручную, менялась бы и цена на товар.

    Подскажите, как это реализовать.
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    1) Заводишь новый справочник СпецЦены только наименование и код.
    2) Новый справочник ТаблицаЦен (подчинен СпецЦены) реквизиты: номенклатура и ТипЦен
    3) Заводишь дополнительный реквизит у контрагента СпрСпецЦены (тип - СпецЦены)
    4) В ГМ лезешь в процедуру глПересчетТаблЧасти и вносишь необходимые изменения - замена типа цен в документе на ту что есть в подчиненном справочнике ТаблицаЦен.

    Получится универсально.
  3. TopicStarter Overlay
    Chudka
    Offline

    Chudka Опытный в 1С

    Регистрация:
    8 окт 2009
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Что сделать в диалоге справочника Контрагенты? Какие элеменды диалога добавить в существующую форму? Нужно, чтобы возможность выбрать основной тип цен осталась, а помимо этого добавилась возможность выбрать для отдельных групп товара отличный тип цен. Различных групп товара очень много, не нужно чтобы они все фигурировали по каждому контрагенту, только основная и детальная.
    Если на пальцах:
    Допустим основной тип цен - "оптовая". Но на группу товаров "БытХимия" - "розничная". Т.е. по данному контрагенту на все виды товаров цена оптовая, а на бытовую химию - розничная. Но при этом в спрКонтрагенты должно отображаться всего две записи: основная(оптовая) и детальная(БытХимия-Розничная).
    Если сделать два доп.справочника, тогда ТаблцаЦен буде заполнена разнообразными вариантами сложения номенклатуры и типа цен. ВЕдь по каждому контрагенту сочетания могут быть различными. Так?
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    На пальцах еще раз.

    1) У справочника контрагенты появится новый реквизит СпрСпецЦены (тип справочник СпецЦены). Можете расположить в форме рядом со стандартным.
    2) ТаблицаЦен ПОДЧИНЕН справочнику СпецЦены и вы будите видеть только те варианты, которые принадлежат владельцу.

    Пример: ЧП Пупкин имеет цены розничные.
    Создаем элемент справочника СпецЦены - "Для Пупкина".
    Создаем таблицу цен - Стиральные порошки (группа) опт +10%; Хоз. мыло опт+25%

    Все....
    При отгрузке порошки входяшие в группу "Стиральные порошки" будут иметь тип цен опт +10%;
    Хоз. мыло опт+25%. Все остальные товары будут продаваться по розничным ценам.

    Для этого и создается двухуровневая структура.
  5. TopicStarter Overlay
    Chudka
    Offline

    Chudka Опытный в 1С

    Регистрация:
    8 окт 2009
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Это я поняла.
    Еще мне нужно понять, как это будет выглядеть в рабочем состоянии. Вот как я это себе представляю:
    В справочнике Конрагенты сначала выбираем основной тип цен(допустим, оптовый)
    Далее кликаем "Детально..." и открывается таблица "ТаблицаЦен" с полным списком номенклатуры(по группам) с проставленным автоматом типом цен "Оптовый", и в этой таблице уже выбираем нужные группы товаров и меняем тип цен с основного на другой. А после сохранения изменений, информация сворачивается до строки: "Оптовый, БытХимия-Розничный"(через запятую детальные записи).
    В общем как-то так. Тогда все это уложится в ту схему, что вы мне предложили.
    Только я не знаю как это сделать визуально? Какую форму создать и где.
    Я наверное глупости говорю? Но правда не знаю. Ладно, начну по порядку, а дальше методом научного тыка что-нить придумаю :)
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Не совсем так:

    Вот здесь - ошибка. Зачем вам весь список номенклатуры?
    Нужно идти от обратного.
    Т.е. изначатьно ТаблицаЦен пуста. Вы в нее добавляете только те позиции, которые нужно продать по другой цене - отличной от цены по умолчанию.

    СпецЦены - справочник, редактировать в списке + кнопка вызова подчиненного справочника
    ТаблицаЦен - справочник, редактировать в списке. Всего 2 реквизита: номенклатура (можно добавлять группу) и тип цен.

    Может случиться так (у меня было) что на всю группу одна цена, а на 1 элемент из этой группы - другая. Необходимо при расчете добавить условие "поиск до первого" (прерывать цикл). А порядок обхода регулировать кодом справочника. Например:

    Стиральные порошки (группа) опт +15%
    Тайд - элемент. опт +20%

    В ТаблицаЦен будут стоять так

    001 Тайд
    002 Стиральные порошки

    Где 001,002 код справочника ТаблицаЦен
  7. TopicStarter Overlay
    Chudka
    Offline

    Chudka Опытный в 1С

    Регистрация:
    8 окт 2009
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Спасибо! В теории всё понятно!
    До написания кода я пока еще не дошла...
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    самое "интересное" тебя ждет в глПересчетТаблЧасти
  9. TopicStarter Overlay
    Chudka
    Offline

    Chudka Опытный в 1С

    Регистрация:
    8 окт 2009
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Да уж! Целый день мучаюсь и хоть бы что получилось!
    А может быть есть уже готовый вариант кода (желательно с комментариями)?
  10. TopicStarter Overlay
    Chudka
    Offline

    Chudka Опытный в 1С

    Регистрация:
    8 окт 2009
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Но сначала меня интересует другой вопрос:
    Когда в справочнике Конрагенты я нажимаю на кнопку выбора в поле СпрСпецЦены, у меня вместо формы списка "СпецЦены" открывается сразу форма списка "ТаблицаЦен".
    И те записи, что я добавляла для одного Контрагента выдны и для другого.
  11. TopicStarter Overlay
    Chudka
    Offline

    Chudka Опытный в 1С

    Регистрация:
    8 окт 2009
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Уважаемый Бухгалтерский угодник, вы не могли бы провести мне небольшой ликбез? По пунктам, что и где мне нужно исправить. Боюсь, без вашей помощи мне не справиться. Я, честно, пыталась сама, но знания ниоткуда не возьмутся, к сожалению.
  12. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Совершенно верно, поэтому сначала теория. А она подробно изложена в желто-красных книжках....
    А краткий ликбез в данном случае читается только как "сделайте за меня". А это услуга платная. С такими просьбами - через личку.
  13. TopicStarter Overlay
    Chudka
    Offline

    Chudka Опытный в 1С

    Регистрация:
    8 окт 2009
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Я не могу создать элемент справочника СпецЦены - ""Для Пупкина", ибо при открытии табл СпецЦены из спрКонтрагенты открывается сразу ТаблицаЦен.

    И еще, какую функцую вызывать при нажатии на кнопку, чтобы открывалась форма справочника?

    Хотелось бы разобраться самой, но без подсказок не получается :(
    Но спасибо, что хоть вы не проигнорировали.
  14. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    Процедура ПриНачалеВыбораЗначения(<?>,)
  15. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Лично я эту фразу не понимаю....
    Нужно написать свою функцию, а в ней делать вызов функции
    Код:
    ОткрытьФорму(.....)
    
    Тогда нужно мноооогоооо желания и терпения. Процесс этот долгий и сложный, несмотря на то, что некоторые и за язык программирования его не считают (это те, кто с ним никогда не сталкивался).

    Чем сможем, тем поможем. Удачи!
  16. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Значит вы СпрСпецЦены сделали тип справочника ТаблицаЦен.

    В списке справочника СпецЦены добавьте кнопку "таблица" по нажатии котороы вызывается ПОДЧИНЕННЫЙ текущему элементу справочник ТаблицаЦен
  17. TopicStarter Overlay
    Chudka
    Offline

    Chudka Опытный в 1С

    Регистрация:
    8 окт 2009
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Я изначально так и делала :) У меня в конечном итоге все зарабортало, ну помимо пересчета (ибо я до него так и не добралась).
    Но это всё не важно! Я нашла более простое решение этой задачи. :unsure: Сейчас во всю его реализовываю! Пожелайте мне удачи! :)

    И еще, СПАСИБО, WaRDeR! За участие и понимание :) Я и раньше пробовала использовать функцию ОткрытьФорму(.....). И только после того, как вы подтвердили, что мои иначинания верны, она у меня ЗАРАБОТАЛА!!! :) Так приятно, вы даже не представляете!
    Вот такими маленьками шажками я осваиваю непонятную мне 1Сv7.7.

    Вы такие классные! :) Спасибо еще раз! :)
  18. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Желаем удачи :))))

    А может поделишься своим более простым решением? Может еще кому-нибудь пригодится.
  19. TopicStarter Overlay
    Chudka
    Offline

    Chudka Опытный в 1С

    Регистрация:
    8 окт 2009
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Обязательно поделюсь, когда у меня всё заработает :)
  20. TopicStarter Overlay
    Chudka
    Offline

    Chudka Опытный в 1С

    Регистрация:
    8 окт 2009
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Если кому интересно, я в итоге сделала так:

    В справочнике "Контрагенты" добавила кнопку "Индивидуальные цены", на которую вызывается справочник "СпециальныеЦены". Он подчинен справочнику "Договоры".
    Ну и всё.

    Для этого я добавила две дополнительные Функции:
    1. Функция глЕстьИндивидуальныеЦены(договор)
    2. Функция глПолучитьИндивидуальнуюЦену(Договор,Номенклатура,Цена,Дата,ПроцентСкидки) Экспорт

    А дальше внесла изменения в процедуру глПересчетТаблЧасти в нескольких местах, где у меня пересчитывается цена(везде по разному, в зависимости функционала), примерно так:

    ЕстьИндЦены = глЕстьИндивидуальныеЦены(Конт.Договор);
    Если ЕстьИндЦены=1 Тогда
    ЦенаЦены = глПолучитьИндивидуальнуюЦену(Конт.Договор,Конт.Номенклатура, Конт.Цена, конт.ДатаДок,Конт.Скидка.Процент);
    Конт.Сумма = ЦенаЦены*Конт.Количество-ПроцентСкидки/100*ЦенаЦены*Конт.Количество;
    Иначе
    Конт.Сумма = Конт.Цена*Конт.Количество-ПроцентСкидки/100*Конт.Цена*Конт.Количество;
    КонецЕсли;

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