Примеры программирования на 1с 8.2. Файловая и серверная базы данных

Если пишешь ты на СИ
Будь хоть трижды ламер
Про такого говорят:
«Он - крутой программер!»
(Фидошные песни - «Что Такое Suxxx и Что Такое Rulezzz»)

Предисловие

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

Как программист, выбравший 1С, считаю данное мнение необоснованным. Платформа 1С - далеко не идеал, но, на мой взгляд, - это лучший, а главное - отечественный продукт!

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

В данной статье я опишу те преимущества, которые нашел для себя в программе. Статья получится практически рекламой, поэтому сразу дисклеймер:

  • Прямого отношения к фирме 1С я не имею;
  • Данная статья не является заказной, и написана исключительно на добровольной основе;
  • В некоторых случаях высказано личное мнение, которое может не совпадать…;
  • Вся статья, за исключением пролога - авторская, любые совпадения - случайность;
  • Речь пойдет о платформе 1С Предприятие 8.2 (в настоящее время - актуальна версия 8.3, но я её ещё не изучал - очень много работы на 1С 8.2). Однако, большая часть сказанного применима как к платформе 8.3, так и к более ранним версиям, а часть - и к версии 7.7.
Итак, приступим.

О чем речь?

Платформа 1С Предприятие 8 - это:
  • Работает в двух вариантах - файловый и серверный (трёхзвенка) - у каждого свои достоинства и недостатки;
  • Независимая система учета, которая легко устанавливается и настраивается;
  • Мощная экосистема для программистов со всеми необходимыми объектами и инструментами;
  • Приятный эргономичный интерфейс;
  • Сравнительно недорогое решение для бизнеса;
  • Сеть франчайзи, начальное обучение;
  • Мощная база наработок и знаний, накопленная годами;
  • Временами проблемная платформа для системных администраторов;
  • Не самое быстрое выполнение алгоритмов (хотя и не самое медленное) - это дань информативности (при ошибках указан номер строки и её содержимое);
  • В языке программирования нет классов (наследования, инкапсуляции, полиморфизма), нет анонимных функций и прочих современных фич. Но для решения большинства задач - это и не нужно!
Для организации учета - одной платформы недостаточно. Платформа - это своего рода «движок», промежуточное звено между программой и базой данных. Программы для этого «движка» называются конфигурации. В конфигурации описана структура базы данных в виде объектов, тексты процедур, хранящиеся в отдельных модулях (модулей много, они есть как у каждого объекта, так и у системы в целом, а также имеются общие модули). Платформа представляет такой уровень абстракции, при котором прямого обращения к базе данных не требуется, а также позволяет абстрагироваться от операционной системы и типа базы данных.

Файловая и серверная базы данных

Платформа состоит из нескольких частей и может работать в файловом или серверном варианте.

В файловом варианте вся база данных содержится в одном файле (с расширением «1cd») - платформа устанавливается на каждом компьютере и напрямую читает/пишет в базу данных.

Плюсы файлового варианта - низкая цена и простота развёртывания.

Минусы - структура файла «1cd» закрыта, нет единой системы, взаимодействующей с БД. В результате - сложно использовать при большом числе пользователей (пробовали на 20+ пользователей - работать можно). Кроме того, при размере базы данных примерно 15 ГБ (и более) возникают сбои при проведении динамического обновления. Решать такие сбои - задача сложная, а утилита для починки базы - не всегда эффективно чинит, а иногда и калечит базу.

Решение есть - это, прежде всего, настройка ежедневного резервного копирования базы данных. Кроме того, народные умельцы не только публикуют формат файла 1cd, но и разработали утилиты для работы с такими файлами и ряд методов по решению подобных проблем.

В серверном варианте, платформа для хранения базы данных использует SQL-сервер (обычно, это MS SQL, но начиная с 8.2.14 - можно использовать и некоторые другие например, Firebird PostgreSQL, IBM DB2, Oracle Database), а сама платформа работает использует трехзвенную архитектуру:

Часть кода выполняется на клиенте, часть на сервере. При этом с базой данных взаимодействует только сервер. При этом, начиная с версии 8.2, помимо стандартного режима работы, который обозвали режимом «толстый клиент», появилось два новых режима работы - «тонкий клиент» и «web-клиент»; также появились «управляемые формы», внешний вид которых строится в виде абстрактного дерева элементов. Программировать под управляемые формы и трехзвенную архитектуру сложнее, но это позволяет перенести почти всю нагрузку на сервер (т.е. можно купить один мощный сервер и сотню самых дешевых офисных компьютеров).

Плюсы платформы: «трёхзвенка» - распределение нагрузки, открытость базы данных (официально фирма 1С отказывается от ответственности за любую порчу данных, если в базу SQL вносились изменения кроме как средствами ихней платформы или сервера, но это мало кого останавливает), отсутствие ограничений.

Минусы - цена: покупать придется отдельно клиентские лицензии на каждый клиентский компьютер, отдельно - одну лицензию на сервер 1С, отдельно лицензию на сервер SQL, если не использовать бесплатный. Также иногда возникают сложности в работе базы данных. Они решаются гораздо быстрее за счет доступности данных и наличия внешних инструментов работы с БД. Кроме того, и в этом случае следует делать бекап базы данных.

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

Ещё один плюс: платформа устанавливается очень просто, примерно так: «Далее-Далее-Далее-Ок», не требуется тонкая настройка и установка каких-либо компонент.

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

Это больше, чем бухгалтерия

Когда речь заходит о платформе 1С, то она представляется, прежде всего, как программа для бухгалтерского учета. Действительно, это - самая популярная область использования платформы 1С. Но не бухгалтерией единой живет 1С!
Те, кто знаком с платформой, говорят, что это система учета (автоматизации учета). Это ближе к истине - существует множество конфигураций, как от фирмы 1С, так и от сторонних разработчиков. Некоторые лишь косвенно связаны с бухучетом, некоторые вообще никак не связаны.

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

Экосистема для программистов

Рассмотрим теперь язык 1С и платформу с точки зрения разработчика:
Объектная модель базы данных. Во-первых, напрямую с базами данных мы не работаем. Это не нужно. Для нашего удобства - все данные представлены в виде взаимосвязанных объектов (справочники, документы, регистры сведений, регистры накопления, …), а «вытаскивание» этих данных из базы выполняет платформа автоматически.
Например, при условии, что в переменной «ЭлементНоменклатуры» содержится ссылка на элемент справочника «Номенклатура», у справочника «Номенклатура» есть реквизит «ОсновнойПоставщик», типа «Справочник.Контрагенты», а у справочника «Контрагенты» есть реквизит «ПолноеНаименование», тогда код:

ЭлементНоменклатуры.ОсновнойПоставщик.ПолноеНаименование
… приведет к тому, что платформа 1С, используя внутренние механизмы, найдет запись в таблице, соответствующей справочнику «Контрагенты» по идентификатору из поля «ОсновнойПоставщик» элемента номенклатуры и вернёт значения поля, соответствующего полю «ПолноеНаименование» в объектной модели справочника «Контрагенты».

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

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

Хранилища значений
Массив - объект, хранящий набор данных, в отличие от классического представления о массивах. Это могут быть данные различного типа (число, строка, ссылка, другой объект). Имеет минимальный функционал и используется, в основном, как временный контейнер для передачи значений между другими хранилищами.

СписокЗначений - объект, преимущественно, для работы с интерфейсом пользователя. Помимо данных также для каждого элемента может содержать представление, признак флажка и картинку (пиктограмму). Также имеет методы «ВыбратьЭлемент()» и «ОтметитьЭлементы()» - при вызове которых пользователю показывается интерфейсный диалог (что удобно - не нужно данный диалог создавать в конфигурации).

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

ТаблицаЗначений - очень удобный, и довольно быстрый, объект для хранения и обработки данных. Колонки в таблице значений можно добавлять и удалять, независимо от количества записей. При этом данные в строках не теряются (или удаляются только данные из ячеек, соответствующих удаляемым колонкам). Также, имеет метод «ВыбратьСтроку()», вызывающий диалог выбора строки. Имеются индексы.

ДеревоЗначений - объект, представляющий иерархические данные. Содержит колонки, набор колонок одинаковый для всех записей на всех уровнях. Удаление/Добавление колонок в дереве значений точно так же легко, как и в таблице значений. Также, имеет метод «ВыбратьСтроку()».

Интерфейсные объекты и объекты для работы с различными данными ТекстовыйДокумент, ТабличныйДокумент, Web-браузер, ЧтениеФайла, ЗаписьФайла, ЧтениеZIPФайла, ЗаписьZIPФайла, ЧтениеXML, ЗаписьXML, HTTPЗапрос и ещё много объектов, и по все в конфигураторе есть встроенная справка. Назначение перечисленных объектов видно из их названий и всё это сразу есть в платформе.

Отдельно следует отметить, что имеется объект «Метаданные» - с помощью которого на языке программирования можно изучить структуру данных, а также у каждой ссылки или объекта для справочника, документа, плана счетов, и т.п. есть метод «Метаданные()» - предоставляющий описание данного справочника/документа/плана счетов/ и т.п. в базе данных (какие реквизиты, табличные части имеются, длина кода/номера и т.п.). Часто бывает очень удобно.

И еще отдельно следует упомянуть про объекты: «Запрос», «КонструкторЗапроса», «ПостроительЗапроса», «ПостроительОтчета», «СхемаКомпоновкиДанных». Это семейство реализует набор объектов для работы с мощным языком запросов 1С.

Язык запросов. Запросы в 1С используются только для получения выборки данных с удобным отбором, сортировкой, группировками. В первом приближении это переведенный на русский язык оператор «SELECT» из SQL, однако, в языке запросов 1С имеется и функционал, который отсутствует в SQL, а именно:

  • Работа с объектами конфигурирования 1С, вместо таблиц SQL;
  • Работа со ссылками, вместо полей-идентификаторов SQL;
  • Поддержка разыменовывания, аналогично тому, как это делается в коде;
  • Выборка по вхождению в группу (для справочников);
  • Иерархические итоги;
  • Временные таблицы и вложенные запросы (SELECT * FROM (SELECT …)));
  • Конструктор запросов - удобный, объектный, автоматически оптимизирующий текст запроса для быстрого чтения, который умеет разбирать текст запроса (парсить текст запроса и строить из него объектную модель);
  • Построитель отчёта - надстройка над механизмом запросов, в которой добавлен функционал автоматического оформления результатов, а также гибкой настройки самого запроса в режиме «Предприятие» (т.е. пользователем). В результате в стандартных платформах 1С появился универсальный отчёт, в котором пользователь может настроить какие данные и в каком порядке он хочет видеть, что в строках, что в колонках, и отчет сам генерирует выходную таблицу;
  • СКД (Система компоновки данных) - следующая модель, вобравшая в себя функционал универсального отчета и дополнившая его некоторыми функциями обработки результатов.

Язык программирования
По синтаксису язык 1С похож на «русский Паскаль», однако от «Pascal» отличается меньшей строгостью и отсутствием некоторых конструкций:

  • Нет необходимости объявлять переменные - можно инициализировать прямо в тексте модуля;
  • Нет жёсткой типизации переменных. В системе есть типы значений, но для переменных нет строгих правил по типизации. Переменная, хранившая ссылку, может через пару строчек кода уже хранить число или строку;
  • Можно складывать переменные со значениями разных типов, при этом, тип результата будет таким, каким был тип у первой переменной, например:
    к = “25”+1; // к = “251”, не 26
  • Переменные со значениями разных типов можно сравнить на равенство или неравенство (но не на больше-меньше, это вызовет исключение) - естественно, такие переменные не равны;
  • Имеются функции и процедуры, допустимо использовать рекурсию (с ограничением по глубине рекурсии);
  • При указании функции или процедуры без параметров - всё-равно, обязательно указывать пустые скобки в конце: вот_так();
  • Имеются модули: у каждого справочника и документа их несколько, кроме того, модули есть у регистров, отчетов и обработок и у каждой формы, а также в составе конфигурации имеется возможность создавать общие модули;
  • Нет классов, наследования, инкапсуляции, полиморфизма;
  • Функцию нельзя передать как ссылку, нет анонимных функций;
  • Нет обратного цикла (for i:=5 downto 1 do), а он реально нужен при удалении записей. Обходимся чуть более длинной записью через цикл «Пока».

Инструментарий

  • В платформе 1С есть возможность выгружать-загружать конфигурацию, сравнивать конфигурацию с другой конфигурацией и частично загружать изменения;
  • Есть возможность выгружать тексты модулей для их пакетной обработки и загружать обратно в конфигурацию;
  • Если конфигурация находится на поддержке (все конфигурации от 1С изначально на поддержке), то всегда можно выполнить сравнение и посмотреть, что изменялось сторонними разработчиками или местными специалистами;
  • Также есть возможность выгружать / загружать базу данных целиком (вместе с данными);
  • Для коллективной работы над одной конфигурацией используется хранилище конфигурации;
  • Также существует ряд правил внесения изменений в стандартные конфигурации, есть даже документ от 1С, описывающий методики и стандарты изменения типовых конфигураций (да и любых других).

Общее впечатление
Язык 1С сочетает в себе ясность текстов языка «Pascal» с фривольностью работы с переменными языка «BASIC». В нем отсутствует ряд возможностей, присущих современным языкам программирования, но без них вполне можно обойтись. Кроме того, в платформе 1С есть мощный сборщик мусора, т.е. не требуется, например, очищать таблицы после использования или удалять их.

Интерфейс 1С Предприятие 8.2

Фирма 1С уделила особенное внимание интерфейсу своей программы. Прежде всего - это цветовая палитра. Она шикарна! Окна программы узнаваемы даже издалека, при этом за многие годы работы - не вызывают неприязненных ощущений, наоборот - хочется, чтобы все программы были были такими-же классными.
При этом стиль платформы весьма строгий, без рюшечек и прочих излишеств. При этом есть весьма полезные функции, например, запоминание размеров окон (размеры запоминаются только при их изменении пользователем, и, при этом, всегда можно сбросить настройки пользователя - до размеров и позиции по-умолчанию, нажав Alt+Shift+R).
Интерфейс Web-клиента 8.2 вызывает ряд нареканий, но, вроде бы, платформа 8.3 несёт с собой новый переработанный интерфейс - «Такси».

Цены, спрос и предложение, франчайзинг

Самым «вкусным» плюсом платформы 1С является её цена. Особенно, это актуально сейчас, во время кризиса. Ведь 1С - это полностью наш, отечественный продукт. И продаётся она за наши деревянные. Подобные решения от иностранного производителя будут стоить огромных денег. А лицензии на 1С стоят вполне приемлемо.

Кроме того, у 1С интересная политика лицензирования. Сами лицензии и конфигурации покупаются один раз. При этом, лицензии покупаются на рабочее место и на сервер, но не на базы данных, и даже не на подключения, т.е. по одной лицензии один и тот же пользователь может запускать неограниченное количество сеансов 1С, работая с любым числом баз данных. То же самое касается конфигураций: приобретя одну лицензию на конфигурацию организация может использовать её для создания любого количества баз данных, более того официально разрешается использовать части кода и объекты данной конфигурации при разработке собственных конфигураций (при этом собственные конфигурации можно продавать/передавать - оговаривая, что для их использования нужно купить конфигурацию от 1С).

После этой единовременной покупки нужно только подписаться на обновления и раз в год оплачивать продление подписки, т.н. ИТС. К слову, подписка стоит весьма недорого, примерно как две клиентские лицензии.

В целом, всё это выглядит очень выгодно.

Вторым «вкусным», но уже с ложкой дёгтя, плюсом, является наличие довольно универсальных конфигураций от самой 1С и от партнеров.

Про универсальность

Понятие «универсальность» определил один школьный учитель по НВП на примере противогазов: существуют универсальные, защищающие от многих поражающих факторов, но степень защиты средняя или ниже среднего, и также существуют специализированные противогазы, которые защищают от одного воздействия, но с высокой степенью защиты. До сих пор я не встречал более точного определения.
И конфигурации от 1С - именно универсальные. Практически, нет задач, где бы их можно было полноценно использовать без доработок. Тем не менее, фирме 1С удалось создать универсальный набор инструментов, покрывающий запросы большинства отраслей современного бизнеса.


Третьим плюсом (и тоже с ложкой «дёгтя») является сеть франчайзи и центров обучения, как для пользователей, так и для начинающих программистов и администраторов. Хорошая идея, но весьма посредственное качество её реализации. Тем не менее, распространённость и агрессивный маркетинг - одна из причин повсеместной популярности 1С в нашей стране (и это-же причина негатива, зависти и ненависти).

Ложка дёгтя

Расписав во всех красках 1С было бы несправедливо не сказать и о её недостатках, а уж они-то есть:

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

Франчайзи (далее - франчи) . В идеале, по задумке, это должны были быть фирмы с квалифицированными специалистами, знающими основные принципы работы конфигураций и платформы. Эти самые фирмы должны были бы продавать платформу, конфигурацию и поддержку, слегка «допиливать» универсальные конфигурации под требования клиента (а временами - корректировать эти требования), стараясь минимально модифицировать стандартную конфигурацию. Так, чтобы не сильно усложнять будущие обновления. А в реальности всё наоборот.

При продаже новых лицензий клиенту франчи получают 50% от их стоимости (за минусом подоходного налога 13% от этих 50%). При этом самим производить ничего не надо, надо только передать ключи от 1С покупателю.

При оказании же услуг франчи не платят фирме 1С ничего (за исключением членских взносов), но зато им нужно платить зарплату сотруднику. Также приходится тратиться на налоги государству - ПФР и подоходный налог.

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

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

Техподдержка. В понимании фирмы 1С, техподдержка - это предоставление доступа к разделу «обновление» для платформы и конфигураций, а также к информационным разделам, содержащим описание некоторых механизмов и особенностей работы 1С. Кроме того, при подписке предоставляется диск с указанными материалами. Также имеется форум (весьма скудный в сравнении с народными). Ещё имеется возможность отправить электронное письмо в фирму 1С - но даже не надеясь, что на него ответят (или ответит робот «Письмо передано в отдел разработки». В плане разработки гораздо большую поддержку оказывает Яндекс.Поиск и встроенная в конфигуратор справка.

Эпилог

Я перешел на 1С в 2008 году, а до этого работал в фирме, разрабатывающей свою программу бухучета (Delphi 5, затем Delphi 7). Сначала я познакомился с платформой 1С Предприятие 7.7 и меня поразила в ней простота разработки отчетов. При этом было видно, что отчеты формируются намного дольше, чем в похожих механизмах на Delphi, но бухгалтеров это особо не волновало. Подождать несколько минут вместо нескольких секунд - не проблема. Наоборот, можно ногти там накрасить, чайку попить или обсудить последние новости не отрываясь от работы. Ведь подавляющее большинство бухгалтеров в наше время - женщины.
Тем не менее, интерфейс 7.7 был весьма ограничен, а набор объектов - весьма скуден. Я искал альтернативы. Познакомился с внешними компонентами, но до практического применения их не дошло, т.к. начальник решил, что пора бы нам переходить на 8.1 (да, 8.2 тогда ещё не было), а в этой платформе, как программист, я нашёл всё, чего мне не хватало ранее.
В настоящее время имею авторитет среди коллег, а также клиентов, которые перешли ко мне от франчей. С франчами они уже, наверное, никогда больше не свяжутся.


В целом, работой в платформе 1С Предприятие 8 я вполне доволен. Она подходит для решения большинства учетных задач и задач с использованием базы данных.

Теги: Добавить метки

В деятельности любого предприятия всегда большую роль играет правильно по ставленный учет. Учитываются товары, деньги, договоры, фирмы-поставщики и фирмы-покупатели, сотрудники и многое другое - вся эта информация важна при работе предприятия для правильной оценки и планирования дальнейшей деятельности. В наш век информационных технологий конечно же учет ведется с по
мощью компьютера. Но для того чтобы компьютерный учет был действительно эффективным, одного компьютера мало, нужна хорошая учетно-аналитическая программа. Можно ведь вести учет в электронных таблицах MS Excel, а можно в специализированной программе, предназначенной для ведения учета. Таких про грамм, более или менее эффективных, написано немало. Особое место среди них
занимают программные продукты компании "1С". Огромную популярность у пользователей в течение многих лет имела учетная система "1С:Предприятие 7.7". Однако прогресс на месте не стоит, появилась альтернатива - новая, 8-я линейка "1С:Предприятие", которая все более вытесняет своего популярного, но все более устаревающего предшественника. Сменились уже три версии платформы 8 - 8.0, 8.1 и 8.2. Наша книга посвящена системе "1С:Предприятие 8.2" - последней и наиболее удачной версии линейки 8.x . Что же такое "1С:Предприятие 8.2"? Это современный программный комплекс, контролирующий все стадии товарооборота, от производства или поступления то вара на склад до его продажи и проведения через бухгалтерские книги. При этом очень важно, что система "1С:Предприятие 8.2" является открытой для доработки и самостоятельной разработки, что позволяет достичь большой гибкости в организации системы учета на предприятии, поскольку можно использовать как типовые программные решения компании "1С", так и дорабатывать их или разрабатывать новые, под специфику работы предприятия.

Чему обучит книга

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

После прочтения читатель усвоит основные принципы разработки в системе "1С:Предприятие 8.2", а именно:
сможет самостоятельно установить систему "1С:Предприятие 8.2" и подключить базы данных;
познакомится с синтаксисом языка программирования 1С 8.2;
сможет дорабатывать и поддерживать конфигурации "1С:Предприятие";
познакомится с системой компоновки данных и научится разрабатывать отчеты;
научится работать с отладчиком;
познакомится со встроенным языком запросов;
научится писать внешние отчеты и обработки;
познакомится с администрированием базы 1С, сможет сам назначать права учетным записям пользователей, формировать пользовательские интерфейсы, делать резервные копии базы данных.


Для кого эта книга

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


Как пользоваться книгой

Читать книгу лучше всего по порядку, начиная с установки, описанной в главе 1 .
В главе 2 представлены основные операторы и языковые конструкции системы "1С:Предприятие", их практическая ценность при прочтении главы может быть не ясна, поскольку результаты работы учебных примеров мы просто выводим на экран. Однако уже в главе 3 мы столкнемся непосредственно с объектами конфигурации, такими как справочники, документы и регистры, и здесь теория, полученная в главе 2 , найдет свое применение. Если читатель не планирует работать с языком запросов или создавать отчеты, то главу 4 он может пропустить, однако следует помнить, что создание отчетов - одна из наиболее часто встречающихся задач. Также можно было бы пропустить главу 5 , если бы читатель твердо был уверен, что ему не придется заниматься назначением прав пользователей в системе "1С:Предприятие". Однако программист это должен уметь так же, как и пользоваться отладчиком (см. главу 6 ) .
Мой совет читателю: читать весь материал книги последовательно. Ведь книга уже изначально планировалась, как дающая начинающему программисту самое необходимое. То, что менее важно, было и так пропущено, чтобы не загромождать и не усложнять учебный материал.
Также советую читать книгу за компьютером с установленной системой "1С:Предприятие 8.2" и со специально подключенной конфигурацией "для опытов", которую не жалко испортить, разбирать приведенные примеры на практике, создавать в своей учебной конфигурации такие же, смотреть как они работают. Больше экспериментируйте и импровизируйте. Если в процессе разбора примера возник вопрос "А что будет, если сделать не так, как в примере, а вот так?" - так и сделайте и посмотрите, что получится. Примеры с пометкой "А как сделать?" вполне можно использовать как типовые конструкции для собственных разработок.

Самиздат, 2012. — 750 с.Содержание:
Урок
1. Знакомство, регламентные вопросы.
- архитектура системы (логическая и физическая)
- понятия "Информационная база" и "Конфигурация"
- основные классы объектов
- создание новой пустой базы
- синтаксис (примерчик): справочники Сотрудники, Контрагенты (иерархия)Урок 2.
- рисование - из чего состоит справочник (реквизиты, форма (и модуль формы), макет, модуль объекта)
- справочник Сотрудники: Работающий(Булево), ФормаЭлемента, процедура ПередЗаписью() - проверка записи ДатыРождения
- небольшое введение в синтаксис (процедура, условие, комментарий, Сообщить(), примитивные типы Строка, Булево,Дата и базовые действия с ними
- модуль управляемого приложения (приветствие)Урок 3.
- Справочник - это каталог с записями
- иерархия элементов и Групп и элементов (поля Родитель,ЭтоГруппа)
- ПометкаУдаения, Предопределенный (Спр ЕдиницыИзмерения с предопределенными элементами)
- Владелец (связь один ко многим, справочник Договора)
- справочник Номенклатура: иерархия, Услуга(булево), ЕдИзм(Справочники.ЕдиницыИзмерения, ЗначениеЗаполено штуки),ЦенаПродажи(Число)
- Константа НазваниеОрганизации
- Неявное преобразование типов (приветствие в уроке 2)Урок 4.
- наследование признака услуги из группы
- тип значения Null и Неопределено
- ОбработкаЗаполнения() при создании новых элементов, ДанныеЗаполнения, СтандартнаяОбработка
- Структура, стандартный механизм проверки заполения, ОбработкаПроверкиЗаполнения()
- теория: работа с синтаксис-помощником, отличия и связь между понятиями СправочникиМенеджер,СправочникМенеджер, СправочникВыборка,СправочникСсылка,СправочникОбъект
- практика: НайтиПоРеквизиту(), Общий модуль ОбщиеМеханизмы.ПолучитьСписокИменинников()
ДЗ Добавить в справочник группы и исправить механизм получения списка именинниковУрок 5.
- ФормаЭлемента справочника Контрагенты, основные элементы (группа,кнопка,команды), видимость формы на клиенте и на сервере
- отчет по списку номенклатуры "Прайс-Лист", макет, параметры макета, области, Формат()Урок 6.
- РегистрыСведений (ресурс,измерение, периодичность, режим записи), история изменений
- Справочник.Валюты
- РегистрСведений.КурсыВалют, ключевые поля,СрезПоследних,ПолучитьПоследнее(), ОбщиеМеханизмы.ПолучитьКурсыВалют()
- ДерективыКомпиляции
- ВалютаВзаиморасчета в Контрагенте
ДЗ Должности, ШтатноеРссписаниеУрок 7.
- Хранение информации о свойствах элемента справочника
- ПланВидовХарактеристик: структуры и схема использования плана видов характеристик
- ПланВидовХарактеристик.ВидыСвойств
- Справочник.ДопСвойстваНоменклатуры
- РегистрСведений. ЗначенияСвойствНоменклатуры
ДЗ ВариантыНоменклатурыУрок 8.
- Документы в системе 1С Предприятие (представление,структура, Проведение)
- Документ.Приходная (нумерация, движения,журналы)
- создание формы документы, расчет суммы
- РегистрСведений.ЗакупочныеЦены
- Конструктор движений, ОбработкаПроведения() ,Отказ,Режим
- Документ.Расходная, подставление ЦеныПродажи при изменении НоменклатурыУрок
9. Регистры накопления
- регистр накопления ОстаткиТоваров, проведение документов Приходная и Расходная по этому регистру.
- варианты удаления движений
- теория Что происходит в регистрах накопления. Системное перечисление ВидДвиженияНакопления
- таблицы регистра накопления: Движения, Остатки
- управление итогами
- Запросы: синтаксис описания запроса
- Отчет ОстаткиТоваровУрок 10.
- Консоль запросов. синтаксис запросов
- Отчет по купленным товарам. Конструктор запросов с обработкой результата
- Отчет Закупки-Продажи_Объединение. Механизм объединения таблиц в запросе
- Соединение таблиц в запросе. ЕСТЬNULL Отчет Закупки-Продажи_Соединение
- механизм формирования отчетов СКД, Конструктор настроек компоновки данных, оформление полейУрок 11.
- отчет ОстаткиТоваровСКД, таблица, диаграмма, сохранение вариантов отчетов
- формы списка - тоже СКД, настройка формы, динамический список
- форма выбора справочника Номенклатуры, Связи параметров выбора у реквизита, передача параметра в форму выбора
- ОбработкаПроведения() документа Расходная с учётом остатков товаров, вывод сообщения пользователюУрок
12. Движение номенклатуры по складам
- справочник Склады, регистр накопления ОстаткиПоСкладам
- движения документа Приходная по регистру ОстаткиПоСкладам
- форма документа Приходная (подменю,группы)
- отчет СкладскиеОстатки (связи наборов данных, вычисляемые поля)
- Расходная: остатки по складу, механизм пакетных запросовУрок
13. Партионный учет
- теория методов учета партий товаров LIFO, FIFO
- Измерение Партия в регистре ОстаткиТоваров
- движение по партиям приходной
- Ведомость по Остаткам партий товаров
- Группировка количества и стоимости в СКД
- ИТОГИ ПО, уровни группировок
- ОбраоткаПроведения Расходной с учетом списания по партиям, Обход результата запросаУрок
14. Последовательности.РегистрНакопленияОборотов
- последовательность СебестоимостьПартийТоваров
- Отчет НеправильныеПродажи, Регистр накопления Продажи, свойство ИспользоватьВИтогах
- проведение Расходной по регистру Продажи
- Отчет ТакКакНадо
- Агрегаты в регистрах накопленияУрок
15. Управляемый интерфейс
- Подсистемы, командный интерфейс, картинки
- Функциональные опции, Складской и Валютный учет, Параметры функциональной опции
- Роли, Пользователь, Привилегированный модуль
- Пользовательская настройка формы списка и документа (группировка документов, страницы)Урок 16.
- Форма Констант, Общая команда ПараметрыУчета, Команда Печать в расходной, их отображение, печать накладной
- Взаиморасчеты, регистр накопления, проведение по нему документов
- отчет Взаиморасчеты, редактирование пользовательских полей
- характеристики контрагентов (ПланВидовХарактеристик, Справочник, РегистрНакопления), их использование в отчете, настройка характеристик в СКДУрок
17. Бизнес-процессы
- ЗадачиИсполнителя, регистр сведений Адресация
- Параметры сеансы, модуль сеанса
- бизнес-процесс ПродажаСКонтролемОплаты, Карта маршрутаУрок 18.
- Распределенные базы данных, обмен между ними, план обмена
- выпуск и обновление конфигурации, создание комплекта поставки
- обновление, снятие с поддержки конфигурацииУрок 19.
- ПланСчетов, предопределенные счета
- регистр бухгалтерии Управленческий
- документ ОперацияБух, проведение по регистру бухгалтерии
- список проводок в форме списка
- отчет ОСВ, таблицы регистра бухгалтерииУрок 20.
- ПланВидовХарактеристик.ВидыСубконто, связь с планом счетов, субконто у предопределенных счетов
- документ Приходная, движение по регистру бухгалтерии с субконто
- отчет ОстаткиТМЦ, параметры на субконто
- документ РасходнаяУрок
21. Количественный учет
- признак учета Количество в плане счетов, балансовость ресурса
- движение по количеству в документе Приходная, Расходная
- доработка ОтчетаТМЦ, таблицы регистра бухгалтерииУрок 22.
- правильный расчет себестоимости
- элемент формы переключатель
- связь ресурса регистра с признаком учета субконто
- расчет себестоимости в расходнойУрок
23. Валютный учет
- справочник Валюты, регистр сведений Курсы валют, функция перевода ИзВалютыВВалюту
- признак учета Валютный в плане счетов, связь с регистром бухгалтерии
- движение Приходной по валютному учету
- отчет АнализВалютныхОстатковУрок
24. Заключительное занятие по бух. учету
- признак учета субконто ТолькоОбороты
- разница таблиц регистров бухгалтерии
- отчет ПрибыльУрок
25. Регистры расчета. Планы видов расчета.
- Начисление сотрудникам оклад + премия.
- Документ "ввод произвольных начислений".
- План видов расчета "Начисления".
- Процедура "рассчитать" в Общие модули, отвечающая за начисление премии
- Доп. объект (Справочники.Сотрудники").Урок 26.
- Оптимизация процедуры расчета путем выноса запроса за пределы цикла.
- Автоматизация выбора начисления, путем добавления к начислению параметра в виде перечисления (фикс или процентом).
- Календарь рабочих дней в виде Регистра сведений (Заполнение календаря).
- Добавление расчета начисления по дням.Урок 27.
- Добавления способа расчета в завизимости от нормы дней к фактическому показателю.
- Издержки из начислений (прогулы и т.п.).
- Отчет (диаграмма Ганта)
- Запись Сторно

New Page 2

Это последний урок из серии "Изучаем 1С 8.2", публикуемый в бесплатном разделе. Начиная со следующего, публикация уроков будет продолжена в . В бесплатном же разделе иногда, возможно, будут опубликованы некоторые отдельные статьи по 1С 8.2.

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

И так, для начала создадим форму констант* :

Теперь займемся программированием. Откроем форму для редактирования и переключимся на модуль* :

Сначала мы увидим пусто место для ввода текста программы. Нам нужно создать обработчик события "ПослеЗаписи"* :

В него мы вставим всего лишь одну команду: ОбновитьИнтерфейс()* :

Не забудьте назначить на форму констант права:

Теперь давайте протестируем, убедимся, что при изменении константы через форму констант, у нас сразу же обновляется интерфейс:

Заметьте, если вы измените константу через опцию "Ценнообарзование по типам цен", то обновление не произойдет. Сразу интерфейс у нас обновляется только через форму констант. А через "Ценнообарзование по типам цен" обновление по прежнему происходит только через "выйти и снова зайти". Так что мы теперь можем просто тупо удлить эту константу из интерфейса, оставив только форму. Кстати, при желании мы можем создать несколько форм констант, как для каждой константы по отдельности, так и одну форму для нескольких констант сразу.

Одним из самых популярных в поисковой системе является запрос «программа 1С 8.2 для чайников». Чем же вызван такой интерес? Давайте разберемся.

Почему изучение 1С является проблемой для некоторых?

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

Например, как можно, не зная бухгалтерский учет, разобраться в программе для ведения бухгалтерского учета? Правильно, никак.

Рассмотрим лучшие самоучители по программам 1С Предприятие 8.2 и 8.3 для чайников: материалы, видео, уроки, книги, аудио, тренинги.

Первым делом необходимо узнать, что конкретно необходимо изучать «чайнику» в 1С 8.3? Существует огромное множество программ 1С, которые существенно различаются. Или, возможно, Вам хочется изучать 1С программирование? Запросто!

Книги по 1С Бухгалтерия

Бесплатные видеокурсы по 1С Бухгалтерия

В интернете огромное множество качественных платных видеоуроков и инструкций по программам 1С, найти их не составит труда. Гораздо сложнее найти бесплатные качественные материалы. Рассмотрим именно их.

Наша подборка видео

Наши видеоуроки для начинающих в 1С Вы можете увидеть в специальном плейлисте на Youtube. Обязательно подпишитесь на наш Ютуб канал , мы регулярно выпускаем новые видео!

Видеокурсы с торрентов

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

Видеокурсы на youtube.com

Если забить в поиск на этом сайте «1C бухгалтерия», Вы удивитесь количеству материала по программе 1С для чайников.

Платные курсы онлайн/оффлайн

Среди курсов и тренингов могу выделить онлайн-курсы 1С — profbuh8.ru . По ссылке можно скачать бесплатно более 200 видеоуроков от компании ПрофБух8 для ознакомления.

Среди курсов оффлайн — курсы самой фирмы 1C (www.1c-uc3.ru) и курсы центра Специалист (www.specialist.ru)

Складской и торговый учет в программе 1С Предприятие

Складской учет обычно даётся простым смертным, как мы с Вами, гораздо проще. Здесь не надо знать планов счетов, талмудов вроде ПБУ 18/02 и т.п.

Складской учет никак не регламентирован, способы и пути его ведения ничем не ограничены.

Книги по Торговле в 1C

1С:Предприятие 8. Управление торговыми операциями в вопросах и ответах.

Отличная книга, в которой собрано несколько сотен реальных, жизненных кейсов (примеров) для изучения программы 1С. Такая книга подойдет как чайникам в программе 1С, так и продвинутым пользователям. Книга выпущена как для версии программы 10.3, так и для 11 редакции.

1 С Предприятие 8″. Конфигурация «Управление торговлей» редакция 11

Книга, идущая в комплекте к программе « «, очень полезный и актуальный материал.

Бесплатные видеокурсы по 1С Управление торговлей

    • Сайт teachvideo.ru http://www.teachvideo.ru/catalog/24
    • Видеокурсы с торрентов
    • Курсы на youtube.com

Пример — видео на youtube, поступление товара на склад:

Платные курсы Торговли

Платные курсы по программам 1С по складскому учету для новичков и чайников аналогичны:

  • Среди курсов и тренингов могу выделить онлайн-курсы — profbuh8.ru , вот ссылка на тест-драйв их курса по 1С Торговли
  • Среди курсов офлайн — курсы самой фирмы 1С (www.1c-uc3.ru) и курсы центра Специалист (www.specialist.ru)

Программирование 1С 8 для чайников

Самое интересное и сложное — новичков. Конфигурирование 1С 8.3 и 8.2, как правило, не требует глубокого изучения предметных областей — бухгалтерии, финансов и т.д. Однако общее представление нужно иметь.

Книги для начинающих программистов

Для изучения программирования для чайников написано огромное количество книг, не все рекомендую читать.

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

Обучение для программистов по видео

В двух словах:

  • хорошие бесплатные курсы — это курсы Павла Чистова;
  • из платных по соотношению цена/качества можно выделить курсы компании «Верный старт» — по ссылке можно получить более 30 бесплатных демоуроков. Самое ценное в этих курсах то, что преподаватели не просто дают знания по программированию, но и помогают с дальнейшим трудоустройством.