hammer.jpg Готовлю к релизу очередную версию Простого учета, вот появилось небольшое нововведение в работе с печатными формами документов. Теперь общий порядок для вывода на печать такой: у документа будет одна, встроенная в конфигурацию, печатная форма, будет справочник, где можно указать вид документа и соответсвующий этому виду префикс для внешних печатных форм. При нажатии на кнопку “Печать” в папке с внешними формами будет сделан перебор по заданному префиксу и вывод меню для выбора нужной печатной формы. Таким образом можно будет самостоятельно задавать любое количество любых форм для любого документа. Замечания и предложения принимаются. Все это для версии 45.9, хотя наверное скоро она будет уже 46, а 45 пойдет на бесплатный доступ.

При считывании данных сканером штрих-кода, драйвер возвращает в переменную “Событие” тип полученных данных, что используется в стандартной конфигурации “Торговля и склад для Украины“:

Если Событие=”BarCodeValue”    Тогда

Значение типа данных зависит от установки в свойствах драйвера. К чему все это? Если на рабочем месте нужно использовать ридер магнитных карт и сканер штрих-кодов как взаимозаменяемые аппараты, то при настройке ридера ему нужно указать тип “сканер штрих-кода”, тогда никаких манипуляций с кодом не потребуется. С другой стороны это говорит о том, что при необходимости можно настроить работу таким образом, чтобы по считыванию одинаковых данных ридером или сканером происходили разные действия.

pro_think_100.jpg Ковырялся в коде справочника товаров и попробовал проанализировать работу формы списка в отладчике, по замеру производительности. Результат немного шокировал - самым тугим местом оказались вызовы методов Выбран() для текущего элемента справочника, немного менее тормознуто происходит обращение к реквизиту через точку, примерно также медлено - к константе через точку.

Вот как я провел эксперимент: выбрал одну функцию, вначале которой производится проверка текущего элемента методом Выбран(), включаю замер, открываю список товаров, выключаю замер, результат

0,005021 мсек

Теперь переписываю код с использованием метода ПустоеЗначение(), то-же действие, замер, результат

0,000132 мсек

Есть разница? Если сравнивать проценты времени выполнения от общего времени работы модуля, то получим в первом случае 12% а во втором только 0,41%.

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

Еще одно слабое место - периодические реквизиты. В моем случае были переписаны обращения к значениям через Получить() на простое обращение к атрибуту после применения к справочнику метода ИспользоватьДату(). Это значит, что если раньше было указано

Цена=Тов.Цена1.Получить(Дата1);

то теперь при открытии формы, а потом и при каждом изменении переменной Дата1 вызывается метод ИспользоватьДату(Дата1), а код переписан в виде:

Цена=Тов.Цена1; 

Такие пироги. Вот уж, что называется - век живи, век учись.

PS В Простом учете все указанные оптимизации проведены в версии 45.5

26.11.2007CSV плюс 1С

buh_boy.jpg Оказывается, формат CSV очень удобен, а что еще важнее для программиста - прост в формировании и обработке. Что такое CSV (кома-сепарейтед вельюз - значения, разделенные запятыми), можно почитать в Википедии. По сути это простой текстовый файл специального формата. Поэтому 1С может свободно с ним работать, формировать, выгружать данные, и читать, загружать в базу.

Удобство в том, что его можно просто открыть и просмотреть как текст, его понимает и открывает в виде таблицы MS Excel, но сейчас о другом. Столкнулся я с этим форматом вплотную при освоении работы интернет-магазина на базе Joomla и VirtueMart. Как оказалось, каталог товаров в VirtueMart можно загружать в формате CSV, а значит, если ваше предприятие ведет учет в 1С и собирается заняться интернет-торговлей, можно довольно просто загрузить имеющийся перечень товаров сразу в интренет-магазин. Более того, все последующие операции по редактированию свойств товаров можно производить такими-же загрузками, а значит, например работу по “содержанию” онлайн-каталога можно поручить тому, кто вел справочник товаров в 1С без необходимости нагружать человека онлайн-премудростями. Необходимо только в существующей базе внести недостающие поля в справочник, которые будут соответствовать используемым полям в интернет-магазине.

Если вас заинтересовали технические тонкости - спрашивайте, всегда готов пообщаться. Пример сайта, использующего упомянутый движок: http://aslan.com.ua

spisok_kontr.jpg Эксперименты со списком контрагентов в Простом учете выливаются в интересные формы. Появилась отдельная обработка с этим-же названием, доступна в бете, в меню Сервис - Список контрагентов. В чем ее смысл? Она имитирует список справочника, но при этом имеет ряд существенных отличий. Внешний вид можно увидеть на картинке, кликайте, описание основных функций ниже.

Читать полностью »

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

Уже готово:

  • расширения справочника контрагентов: больше полей, категории, напоминания для контрагентов
  • настройка видимости полей в форме списка справочника - обработка переписана, теперь в товарах и контрагентах используется одинаковый механизм, может быть его надо еще к сотрудникам прикрутить (?)
  • контрагентов можно отмечать произвольным цветом, есть справочник Цвета, в котором хранятся характеристики цвета
  • обработка Загрузка справочника поддерживает загрузку категорий контрагентов, необходимо указать столбец с названием категорий, одному контрагенту можно присвоить несколько категорий если записать их в ячейку разделив точкой с запятой (;)

Ближайшие планы

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

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

Когда ковыряешь код в стремлении сделать что-то нестандартное, необычное, то бывает упираешься в глухую стену - нет в возможностях программы таких приемов. Вот тут приходят на помощь внешние компоненты. Сейчас их написано множество и на самые разные случаи жизни, даже официальная поставка конфигурации “Бухгалтерский учет для Украины” содержит компоненту v7plus. Простой учет тоже обзавелся довеском - компонентой FormEx. Возможностей у этой компоненты очень много и фантазировать о способах ее применения можно часами, но, признаюсь честно, я не сторонник “кода со стороны”. И эту компоненту внедрял с опаской, ведь ошибки в работе базы данных могут дорого обойтись и никакими удобствами их не перекроешь. На сегодняшний день, после трех лет эксплуатации, уже можно утверждать, что работа программы с использованием FormEx стабильна.

Читать полностью »


© 2007 Програмiст | iKon Wordpress Theme создана TextNData | Разработано на Wordpress | Локализация: Blogstyle.ru