Использование JSON в 1С

Для чтения объекта JSON самое простое что можно сделать — превратить его в Структуру:

ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Ответ);
Результат = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();

Для записи JSON, например, списка

Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку();
Запись.ЗаписатьНачалоМассива();
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
          Запись.ЗаписатьНачалоОбъекта();
          Запись.ЗаписатьИмяСвойства(«id»);

          Запись.ЗаписатьЗначение( Выборка.Номенклатура.УникальныйИдентификатор());
          Запись.ЗаписатьИмяСвойства(«name»);
          Запись.ЗаписатьЗначение(Выборка.Наименование);
          Запись.ЗаписатьКонецОбъекта();
КонецЦикла;
Запись.ЗаписатьКонецМассива();
Результат = Запись.Закрыть();

результат в виде строки будет в переменной Результат.

Дни рождений клиентов из 1С УТ11

Как не пропустить ни одного дня рождения своих любимых клиентов? Воспользоваться моим новым отчетом Дни рождений клиентов, в котором можно сделать отбор по периоду, а также получить сведения о том, сколько лет исполнится и телефон с электронной почтой, чтобы сразу позвонить или написать письмо.

Дни рождений клиентов

Дни рождений клиентов

Ошибка в 1С УТ11: Ошибочное значение параметра «Склад»

При проведении документа «Поступление товаров и услуг» возникает ошибка

Ошибочное значение парамера «Склад»

Самое забавное, что в тексте ошибки опечатка. И разработчики 1С могут ошибаться 😉

Но перейдем к сути, ошибка может возникать из-за того, что у номенклатуры не заполнено поле Тип номенклатуры или в документе выбраны группы, а не элементы справочника Номенклатура. Да, так бывает, когда содержимое документа загружается универсальной обработкой непонятно откуда взятой пользователем.

Проверяйте содержимое табличной части Товары.

Прайс-лист из 1С, фотографии товаров с сайта

Ещё один удачный пример интеграции 1С и сайта — это прайс-лист.

Немного отступление. Своим клиентам я предлагаю доработку в 1С, чтобы фотографии товара хранились в одном месте — на сайте организации, а в 1С лишь отображались. Даже если в данный момент у вас нет интернет-магазина или каталога товаров, то как правило вы к этому придёте в ближайшее время. Сейчас это уже не мода, а необходимость для роста бизнеса.

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

Прайс-лист (фото с сайта)

Прайс-лист (фото с сайта)

Также, например, на сайте РАССО в шапке есть постоянная ссылка на прайс-лист в PDF и Excel — клиент скачивает данные в нужном ему формате. Прайс-лист автоматически по расписанию обновляется из 1С и клиентам всегда доступен полный свежий прайс-лист ваших товаров.

Всё это может быть реализовано и для вашей организации, обращайтесь!

111

СообщениеПользователю для табличной части

Когда делается проверка заполнения табличной части, например, документа, сообщать пользователю о не заполненных данных через функцию Сообщить() не правильно. Ведь пользователю придется глазами искать строку, где нет данных. Лучше всего для этого использовать объект СообщениеПользователю.

Пример использование этого объекта:

Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = «Данные по продажам не заполнены!»;
Сообщение.Поле = «Объект.Товары[10].Продажи»;
Сообщение.УстановитьДанные(Объект);
Сообщение.Сообщить();

в типовых конфигурациях, например, 1С УТ 11, можно использовать упрощенный вызов из общего модуля

Для каждого Эл Из Объект.Товары Цикл
        Если Эл.Продажи = 0 И Эл.Остаток = 0 Тогда
                ОбщегоНазначенияКлиентСервер.СообщитьПользователю(«В строке » + Эл.НомерСтроки + » нет данных ни по продажам, ни по остаткам!»,, ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти(«Объект.Товары», Эл.НомерСтроки, «Продажи»),, Отказ);
        КонецЕсли;
КонецЦикла;

Динамический интерфейс для 1С 8.2

Как правило, в большинстве организаций 90% сотрудникам требуется 10% функциональности системы. Остальное нужно убрать «с виду», а ещё лучше закрыть доступ, ограничить права.

Выполнить такие доработки для 1С 8.2 (толстый клиент, неуправляемые формы), например, в конфигурации Управление производственным предприятием редакция 1.3 достаточно трудоемкая задача, если использовать типовые интерфейсы.

Для решения этой задачи мною была создана подсистема «Динамический интерфейс», позволяющая генерировать интерфейс «на лету», как это происходит в тонком клиенте 1С 8.3.

Динамический интерфейс для 1С 8.2

Динамический интерфейс для 1С 8.2

Настройка позволяет сделать пункты меню «в два клика» на основные объекты 1С — справочники, документы, отчеты, обработки. Если требуется более тонкая настройка, то с режимом Выполнить можно настроить любое действие, которое будет выполняться при клике по настраиваемому пункту меню.

Настройка динамического интерфейса для 1С 8.2

Настройка динамического интерфейса для 1С 8.2

После общей настройки потребуется ещё указать для каждого профиля пользователя, какие пункты меню или подсистемы целиком будут доступны.

Настройка доступа к пунктам меню

Настройка доступа к пунктам меню

Связи параметров выбора или как связать поля ввода на форме

Если на форме два поля, один из которых подчинён другому по структуре данных, то часто бывает необходимо ограничить ввод данных по владельцу. Например, есть поле Партнёр и Вид цены поставщика.

Для того, чтобы в поле Вид цены поставщика автоматически выбирались только данные выбранного Партнера, необходимо в свойстве СвязиПараметровВыбора поля Вид цены поставщика сделать настройку Отбор.Владелец(Объект.Партнер).

Проблема в том, что это не совсем очевидно. Ведь в дереве свойств конфигуратора в это поле нельзя ввести данные, это нужно делать через вспомогательную форму.

Связи параметров выбора

Связи параметров выбора

Теперь необходимо в колонке Имя вместо Партнер ввести текст Отбор.Владелец. Задача выполнена!

 

Конструктор характеристик номенклатуры в 1С УТ

Когда характеристики номенклатуры это не только цвет и размер, а гораздо больше вариаций. При этом ещё желательно минимизировать возможные ошибки при заведении информации и разделить права — ответственный сотрудник имеет роль наполнения списка возможных характеристик товара, а все остальные только выбор из этого списка. Именно с такими вводными столкнулся при постановке этой задачи.

В карточке номенклатуры на закладке «Конструктор характеристик» были добавлены возможные списки.

barcelonadesign 2

В карточке характеристике можно лишь выбрать из возможных значений, от себя пользователю ничего добавить не получится.

barcelonadesign 3

Настройка обмена между 1С и сайтом Barcelona Design

Выполнен проект по созданию обмена «с нуля» между 1С Управление торговлей и взаимоотношениями с клиентами (CRM), редакция 2.0 и сайтом www.barcelonadesign.ru

www.barcelonadesign.ru

www.barcelonadesign.ru

Данные обмена:

  • Номенклатура и её многочисленные реквизиты
  • Характеристики
  • Цены
  • Скидки
  • Остатки
  • Статусы номенклатуры

Если не хватает лицензий 1С

Если не хватает лицензий 1С, а денег на покупку дополнительных в данный момент времени не предусмотрено, можно попробовать следующий способ.

Не секрет, что многие сотрудники пользуясь 1С не очень то любят ее закрывать и могут сидеть в программе часами, а то и сутками. При этом у них может быть запущена и 1С Бухгалтерия, и 1С Управление торговлей, и еще что-нибудь. И при этом не использоваться — потому что пока не надо, в данный момент пользователя занимается другими задачами. Но лицензия то занята, ладно еще если это «железная» лицензия, а если программная, то все еще хуже.

Программная лицензия расходуется на каждое подключение каждого пользователя на каждый сеанс каждой конфигурации. Если же у вас «железная» лицензия (USB-ключ), то на одну лицензию один пользователь может открыть сколько угодно много разных сеансов разных конфигураций.

Так вот, как раз для таких пользователей в 1С есть настройка. Нужно зайти в программу в режиме конфигуратора, далее выбрать меню Администрирование -> Параметры информационной базы.

Параметры информационной базы 1С

Параметры информационной базы 1С

В поле «Время засыпания пассивного сеанса» необходимо указать время в секундах, по истечении которого сеанс будет считаться спящим (отсчитывается от последней активности). В поле «Время завершения спящего сеанса» указываем время в секундах. После того как сеанс стал спящим пройдет указанное количество времени и сервер завершит данный сеанс, освободив тем самым занимаемую лицензию.

Кстати, кто спит, а кто активен всегда можно посмотреть через консоль сервера на закладке сеансов. В соответствующей колонке есть признак Да/Нет.

Спящие сеансы 1С

Спящие сеансы 1С