Содержание:
1. Зачем использовать стандартные реквизиты, если можно создать свои?
2. Как найти и использовать стандартный реквизит
1. Зачем использовать стандартные реквизиты, если можно создать свои?
Базовые версии 1С 8 более доступны по цене, однако, при этом имеют ряд ограничений, которые «всплывают», как только клиент захочет доработать тот или иной функционал программы. Один из таких сюрпризов – это отсутствие поддержки работы с расширениями 1С. Заметим, тем не менее, что фирма «1С» планирует в новых релизах (начиная с 8.3.19) платформы разрешить базовым версиям 1С 8 работать с расширениями при определённых ограничениях.
Пока же такой механизм отсутствует, решение задачи, требующей создания и хранения сущностей в базовой конфигурации может быть нетривиальным.
Предположим, в выставляемом покупателю счёте в каждой строке с вместе номенклатурой, ценой и прочим, нам, а, вернее, бухгалтеру, хотелось бы хранить такие свойства продаваемого товара, как длину, ширину и количество этого товара в штуках, применительно лишь к этому, возможно, уникальному, заказу. Это сочетание размеров, например, полотно, отрезается по заказу клиента и в дальнейшем может не повториться. Где хранить эти данные?
Регистр сведений, как и расширение недоступны в базовой версии Бухгалтерии 8, использование дополнительных реквизитов не подойдёт, ведь размеры задаются не как свойства номенклатуры как таковой, а как свойства товара именно при его продаже.
2. Как найти и использовать стандартный реквизит?
В таком случае стоит обратить внимание на стандартные реквизиты, которые предлагает программа, в нашем случае это базовая версия 1С 8 Бухгалтерия предприятия 3.0: нет ли среди них «бесхозных», которые могли бы нам подойти? Проанализировав, как используются реквизиты табличной части Товары документа Счёт на оплату покупателю (с помощью консоли запросов, например), можно заметить, что среди прочих есть стандартный реквизит Содержание (строка в 1000 символов), который используется только если добавленная в список номенклатура является услугой, если же это товар (т.е. НЕ Номенклатура.Услуга), то строка Содержание не используется! Что ж, 1000 символов нам вполне достаточно для хранения данных о свойствах товара.
Для работы с этим стандартным реквизитом документа требуется сделать одно подготовительное действие, а именно вытащить его на форму документа <Ещё → Изменить форму…>, разместив в удобном месте и задав достаточную длину поля ввода (рис.1).
Рисунок 1. Покажем реквизит на форме
Далее, и это важный момент – организация хранения и доступа к данным внутри стандартного реквизита в 1С Бухгалтерия, в данном случае – строки в 1000 символов. Следует определить формат записи нескольких данных в строку. Например, число, означающее длину будет начиная с такой-то позиции внутри строки, или же будет некий признак, означающий, что перед нами именно ширина, например подстрока «Ширина, мм:». Если не предусматривается заполнения новых данных в специальном окне, то необходимо довести до пользователя информацию о том, каков формат строки.
Пример строки:
№ Заказа: Э-515 Ширина, мм: 1559 Высота, мм: 1050 Кол-во, шт.: 2
Рисунок 2. Заполнение реквизита несколькими значениями
Остаётся написать обработку, которая будет извлекать числа из этой строки (сама строка при этом, может формироваться и автоматически, например, при загрузке из файла электронной таблицы), вычислять площадь, новое значение Количества и Суммы, словом, то, что в отличной от базовой версии мы бы сделали в обработчике события ПриИзменении.
Таким способом в базовой версии 1С 8.3 Бухгалтерия можно разместить новые данные, не создавая новых сущностей, а используя только имеющиеся стандартные реквизиты. Конечно, следует уделять внимание вопросу безопасного кода в контексте корректного преобразования строки в число или наоборот, помнить о проблеме пробелов и спецсимволов, а также, уже пользователю – контролировать, чтоб избранный нами реквизит использовался по назначению и не был перезаписан вдруг какими-то другими данными. Это можно назвать недостатком использования «бесхозных» реквизитов для хранения данных о свойствах товара.
Специалист компании «Кодерлайн»
Дмитрий Колесников