3 Работа со справочником товаров - номенклатуры
Нами был создан справочник номенклатуры. Теперь мы можем войти в 1С: Предприятие и посмотреть не него. Заодно и заполним наш справочник.
Входим в 1С: Предприятие в нашу базу под именем "Программист" с паролем 123;
В меню мы видим раздел "Справочники". В справочниках есть пока только один - Номенклатура;
Если вы этого пункт меню не видите, это значит, что вы при создании справочника либо не пользовались конструктором, либо не указали необходимость включения справочника в интерфейс. Тогда входите в меню Операции. Там находим команду "Справочники". Появился список справочников. В списке находим справочник номенклатуры и открываем его;
Через меню Действие командой "Новая группа" создадим группу из первого уровня - Код - 00000001, Наименование - "Алюминиевые конструкции и прокат", [ОК];
Программа спросит нас, сохранить ли элемент. Ответим [Да];
Аналогично введем группу "Камни стеновые и кирпич" с кодом 00000002;
Теперь входим внутрь группы "Камни стеновые и кирпич";
Вводим две подгруппы второго уровня: "Камни стеновые" - 00000003, и "Камни стеновые и кирпич" - 00000004;
Теперь можно заводить товары. Но сперва укажем значения наших констант;
В меню Операции выбираем команду "Константы";
Появилось окошко с перечнем наших констант. Введем значения. Для единицы измерения по умолчанию - шт., для процента наценки - 35;
Закроем окно с константами;
В справочнике "Номенклатура" входим в подгруппу;
Меню Действие команда "Новый";
Появилось окошко для ввода данных по товару. Заполняем;
Теперь нажмем [Печать] в форме списка справочника;
Полученную табличную печатную форму мы можем послать на принтер;
Выходим из 1С: Предприятия.
4 Продолжение работы с товарами
У нас есть справочник номенклатуры. В нем у каждого товара мы указали основную единицу измерения. Но мы ведь можем работать и с большими количествами. Мы можем пользоваться и другими единицами, если их занесем, соответственно, как значения перечисления ЕдИзм. Хорошо посмотреть "Общероссийский классификатор единиц измерения". Но вернемся к нашей программе. Мы пришли к выводу, что нам необходимо как-то указать, что товар может измеряться не только в базовой единице, но и в каких-то кратных ей других единицах измерения.
Эта задача в 1С решается следующим способом. Мы заведем новый справочник, подчиненный справочнику товаров. Подчиненность означает, что каждая запись справочника товаров может иметь, принадлежащие только ей, одну, либо несколько, либо вообще не иметь, записей в подчиненном справочнике.
Опишем, каким мы хотим видеть наш подчиненный справочник. Название ему дадим "Единицы". В нем должны быть перечислены единицы измерения товара, включая базовую, и коэффициенты пересчета этих единиц в базовую, для базовой это "1". Реализуем нашу идею.
Создаем новый справочник;
Идентификатор - "Единицы", Комментарий - "единицы измерения товара";
В интерфейс вставлять не будем, это служебный справочник;
[Готово]. Появилось окно свойств справочника;
ГЛАВНОЕ: В поле подчинен выбираем справочник "Номенклатура". Этим мы и указываем характер их отношений;
Количество уровней - 1, следовательно групп у нас не будет, и зачем?. Длина кода - 5, длина наименования - 0. Мы не будем использовать это поле за ненадобностью. Серии кодов в пределах подчинения, тип кода - текст, сюда мы будем заносить текстовое представление названия единицы измерения, основное представление - код (другого варианта и нет). Автоматическая нумерация и контроль уникальности нам не нужны;
Занесем два новых реквизита: Первый - "Ед", тип - П.ЕдИзм. Второй - "Коэффициент", тип Число, неотрицательный;
Редактировать будем в диалоге;
Создаем форму элемента;
Если Вы обратили внимание, предопределенное поле Наименование нам для выбора не предложили, это потому, что мы указали его длину = 0;
Расставим поля как-нибудь поудобнее, но можем оставить и так;
Поле ввода кода сделаем недоступным - сюда мы будем, как и договорились ранее, автоматически заносить строковое представление названия единицы измерения;
Пусть поле ввода "Коэффициент" у нас будет с кнопкой выбора - так симпатичнее;
В поле ввода "Ед" добавим в формулу процедуру Ед();
В модуле формы пишем код процедуры Ед(): Процедура Ед() Код=Строка(Ед); // Здесь функцией Строка() мы получаем строковое // представление значения перечисления КонецПроцедуры
Еще мы хотим при вводе новой единицы измерения нам по умолчанию бы ставилось то значение, которое стоит у товара-владельца в качестве основного, ну соответственно и коэффициент должен ставиться равным единице. Пишем знакомую уже нам предопределенную процедуру: Процедура ВводНового() Ед=Владелец.ЕдИзм; // А вот это важно. Здесь "Владелец" это указание на запись в справочнике // "Номенклатура", которой будет принадлежать эта единица измерения Коэффициент=1; Код=Строка(Ед); КонецПроцедуры В 1С ссылки на реквизиты таблиц имеют такой же вид как и ссылки на атрибуты и методы объектов (через ".");
Для закрепления информации о ссылке "Владелец" внесем текстовое поле, которое в форме элемента будет нам выводить код и наименование товара-владельца:
В диалоге вставим из меню Вставить командой "Текст" текстовое поле;
В окошке свойств этого текста очистим поле "Заголовок";
На закладке "Дополнительно" введем формулу "("+СокрЛП(Владелец.Код)+") "+СокрЛП(Владелец.Наименование) Здесь СокрЛП() - это функция, которая удаляет пробелы в конце и в начале текстовой строки, "(" - текстовое выражение в коде в 1С заключают в кавычки, + в 1С служит и знаком конкатенации текстовых выражений;
На закладке "Шрифт" выберем какой нибудь шрифт и оформление по нашему вкусу;
Нажмем [ОК];
Разместим это текстовое поле, где-нибудь сверху формы;
Скопируем это текстовое поле в буфер обмена;
Форма элемента готова. Закроем ее;
Создадим форму списка;
Растянем поля пошире, чтоб заголовки полей были видны полностью, и вставим наверх из буфера обмена текстовое поле;
Форму списка можно закрыть;
Сохраняем изменения и входим в 1С:Предприятие;
Войдем в справочник номенклатуры;
Найдем "Кирпич Красный" и установим на него курсор;
Из меню Действия командой "Подчиненный справочник" вызовем справочник "Единицы". Если бы у нас было несколько справочников подчиненных справочнику товаров, то нам пришлось бы выбирать из списка;
Введем новый элемент. Это будет элемент с базовой единицей. Ничего изменять не будем и сохраним его;
Теперь введем еще один элемент - с производной единицей измерения;
Единица - штука (шт.), коэффициент - 15;
В списке единиц у нас две записи;
Переключимся в справочник товаров и установим курсор на блоке перегородочном;
Возвращаемся в справочник единиц - он пуст. Две единицы, что мы только что ввели относятся к кирпичу, соответственно в списке записей относящихся к блокам их и не должно быть;
Введем аналогичным образом две записи для блоков: штук (шт.) коэффициент - 1, штук (шт.) коэффициент - 25;
Для остальных товаров внесем записи, как было сказано в начале главы. Обратите внимание, мы не можем создать подчиненные записи к элементу типа группа;
Разместив на экране рядом справочники товаров и единиц, и переходя курсором по записям о товарах, мы можем видеть, как в справочнике единиц меняются наборы записей;
Закроем справочник товаров. Установим курсор в справочнике единиц на любой записи;
Через меню Действия выполним команду "Иерархический список";
В справочнике единиц стало видно сразу множество записей;
Переходя по ним курсором, мы видим, как меняется содержание текстового поля вверху списка, где мы указали выводить код и наименование владельца;
Остановимся, на какой либо из записей;
Через меню Действия выполним команду "Иерархический список";
Снова в списке остались только записи относящиеся к какому-то одному товару;
Через меню Действия выполним команду "Справочник-владелец";
Открылся справочник товаров. Курсор в нем установился на том товаре, который являлся владельцем текущей единицы измерения;
Если мы будем выключать-включать иерархический список в справочнике товаров, то мы будем видеть соответственно либо все товары и группы сразу, либо только относящиеся к текущей группе/подгруппе;
Закроем 1С: Предприятие.