1С Режим Конфигуратор

       

Продукты


Кефир жирность 1.5% МПР-0342

6.90

9.32

шт.



Яблоки "Голден" ФРЯ-908

17.50

25

кг.

  • Теперь нажмем [Печать] в форме списка справочника. Это будет выглядеть примерно так. Любуемся результатом;

  • Полученную табличную печатную форму мы можем послать на принтер;
  • Выходим из 1С:Предприятия. Так как сохранить изменения в конфигураторе мы можем только если ВСЕ пользователи выйдут из программы 1С:Предприятие. Не вышедших можно найти, если воспользоваться Монитором, но и он ничего не покажет, если кто-то открыл окно для ввода имени пользователя и пароля и не вошел. Таких надо учить...
  • 2.6 Продолжение работы с товарами.

    У нас есть справочник номенклатуры. В нем у каждого товара мы указали основную единицу измерения. Но мы ведь можем работать и с большими количествами. Например мы можем продать ящик яблок, в ящике, к примеру, 25 кг. Или ящик с тарелками, где их 12 штук. Мы можем пользоваться и другими единицами, если их занесем, соответственно, как значения перечисления ЕдИзм. Это не возбраняется. Хорошо посмотреть "Общероссийский классификатор единиц измерения". Но вернемся к нашей программе. Мы пришли к выводу, что нам необходимо как-то указать, что товар может измеряться не только в базовой единице, но и в каких-то кратных ей других единицах измерения. Так яблоки у нас будут либо в килограммах, либо в ящиках по 25 кг., тарелки либо в штуках, либо в ящиках комплектом на дюжину персон, кефир либо в пакетах по 1 штуке, либо в ящиках по 15 штук пакетов.

    Эта задача в 1С решается следующим способом. Мы заведем новый справочник подчиненный справочнику товаров. Подчиненность означает, что каждая запись справочника товаров может иметь, принадлежащие только ей, одну, либо несколько, либо вообще не иметь, записей в подчиненном справочнике. Тут неплохо ознакомится с теорией реляционных баз данных. Литературы по этому вопросу есть много. Например книги Баркера, любая книжка по MS Access для начинающих и т.д.

    Опишем каким мы хотим видеть наш подчиненный справочник. Название ему дадим "Единицы". В нем должны быть перечислены единицы измерения товара, включая базовую, и коэффициенты пересчета этих единиц в базовую, для базовой это "1". Реализуем нашу идею.




  • Создаем новый справочник;


  • Идентификатор - "Единицы", Комментарий - "единицы измерения товара";


  • В интерфейс вставлять не будем, это служебный справочник;


  • [Готово]. Появилось окно свойств справочника;


  • ГЛАВНОЕ: В поле подчинен выбираем справочник "Номенклатура". Этим мы и указываем характер их отношений;



  • Количество уровней - 1, следовательно групп у нас не будет, и зачем?. Длина кода - 5, длина наименования - 0. Мы не будем использовать это поле за ненадобностью. Серии кодов в пределах подчинения, тип кода - текст, сюда мы будем заносить текстовое представление названия единицы измерения, основное представление - код (другого варианта и нет). Автоматическая нумерация и контроль уникальности нам не нужны;


  • Занесем два новых реквизита: Первый - "Ед", тип - П.ЕдИзм. Второй - "Коэффициент", тип Число 5.0, неотрицательный;


  • Редактировать будем в диалоге;


  • Создаем форму элемента;


  • Если Вы обратили внимание, предопределенное поле Наименование нам для выбора не предложили, это потому, что мы указали его длину = 0;


  • Расставим поля как-нибудь поудобнее, но можем оставить и так;


  • Поле ввода кода сделаем недоступным - сюда мы будем, как и договорились ранее, автоматически заносить строковое представление названия единицы измерения;


  • Пусть поле ввода "Коэффициент" у нас будет с кнопкой выбора - так симпатичнее;


  • В поле ввода "Ед" добавим в формулу процедуру Ед();


  • В модуле формы пишем код процедуры Ед():

    Процедура Ед()

      Код=Строка(Ед);

    // Здесь функцией Строка() мы получаем строковое

    // представление значения перечисления

    КонецПроцедуры


  • Еще мы хотим при вводе новой единицы измерения нам по умолчанию бы ставилось то значение, которое стоит у товара-владельца в качестве основного, ну соответственно и коэффициент должен ставиться равным единице. Пишем знакомую уже нам предопределенную процедуру:

    Процедура ВводНового()

      Ед=Владелец.ЕдИзм;

    // А вот это важно. Здесь "Владелец" это указание на запись в справочнике



    // "Номенклатура", которой будет принадлежать эта единица измерения

      Коэффициент=1;

      Код=Строка(Ед);

    КонецПроцедуры

    В 1С ссылки на реквизиты таблиц имеют такой же вид как и ссылки на атрибуты и методы объектов (через "."), а не как в VBA, где используется "!";


  • Для закрепления информации о ссылке "Владелец" внесем текстовое поле, которое в форме элемента будет нам выводить код и наименование товара-владельца:


  • В диалоге вставим из меню Вставить командой "Текст" текстовое поле;


  • В окошке свойств этого текста очистим поле "Заголовок";


  • На закладке "Дополнительно" введем формулу "("+СокрЛП(Владелец.Код)+") "+СокрЛП(Владелец.Наименование)

    Здесь СокрЛП() - это функция, которая удаляет пробелы в конце и в начале текстовой строки, "(" - текстовое выражение в коде в 1С заключают в кавычки, + в 1С служит и знаком конкатенации текстовых выражений;


  • На закладке "Шрифт" выберем какой нибудь шрифт и оформление по нашему вкусу;


  • Нажмем [ОК];


  • Разместим это текстовое поле где ни будь сверху формы;


  • Скопируем это текстовое поле в буфер обмена;


  • Форма элемента готова. Закроем ее;


  • Создадим форму списка;


  • Растянем поля пошире, чтоб заголовки полей были видны полностью, и вставим наверх из буфера обмена текстовое поле;


  • Форму списка можно закрыть;


  • Сохраняем изменения и входим в 1С:Предприятие;


  • Войдем в справочник номенклатуры;


  • Найдем "Кефир" и установим на него курсор;


  • Из меню Действия командой "Подчиненный справочник" вызовем справочник "Единицы". Если бы у нас было несколько справочников подчиненных справочнику товаров, то нам пришлось бы выбирать из списка;


  • Введем новый элемент. Это будет элемент с базовой единицей. Ничего изменять не будем и сохраним его;


  • Теперь введем еще один элемент - с производной единицей измерения;


  • Единица Ц ящик (ящ.), коэффициент - 15;


  • В списке единиц у нас две записи;


  • Переключимся в справочник товаров и установим курсор на яблоках;




  • Возвращаемся в справочник единиц - он пуст. Две единицы, что мы только что ввели относятся к кефиру, соответственно в списке записей относящихся к яблокам их и не должно быть;


  • Введем аналогичным образом две записи для яблок: килограмм (кг.) коэффициент - 1, ящик (ящ.) коэффициент - 25;


  • Для остальных товаров внесем записи, как было сказано в начале главы. Обратите внимание, мы не можем создать подчиненные записи к элементу типа группа;


  • Разместив на экране рядом справочники товаров и единиц и переходя курсором по записям о товарах, мы можем видеть как в справочнике единиц меняются наборы записей;


  • Закроем справочник товаров. Установим курсор в справочнике единиц на любой записи;


  • Через меню Действия выполним команду "Иерархический список";


  • В справочнике единиц стало видно сразу множество записей;


  • Переходя по ним курсором, мы видим как меняется содержание текстового поля вверху списка, где мы указали выводить код и наименование владельца;


  • Остановимся на какой либо из записей;


  • Через меню Действия выполним команду "Иерархический список";


  • Снова в списке остались только записи относящиеся к какому-то одному товару;


  • Через меню Действия выполним команду "Справочник-владелец";


  • Открылся справочник товаров. Курсор в нем установился на том товаре, который являлся владельцем текущей единицы измерения;


  • Если мы будем выключать-включать иерархический список в справочнике товаров, то мы будем видеть соответственно либо все товары и группы сразу, либо только относящиеся к текущей группе/подгруппе;


  • Закроем 1С:Предприятие.



  • Содержание раздела