Примеры кода 1С 8.3 — Программист 1С Минск. Автоматизация бизнеса.
По разделам структурированы различные конструкции кода, которые помогут начинающему разработчику понять логику программирования 1С 8.3, а профессионалу восстановить в памяти забытые модули и научиться новым «фишкам». Перед внедрением данных примеров в релиз рабочей конфигурации, рекомендуется детально протестировать код (смоделировать различные действия пользователя) в локальной копии БД 1С.
&НаКлиенте
Функция РешитьЗадачуПо1С83 ( КодНайденВМозге ) Экспорт // Быстро и оптимально
Если КодНайденВМозге Тогда // Истина — используем свои знания и опыт
ВоспользоватьсяИнформацией (Ложь); // Параметр: запись в память мозга
Иначе // Найти нужный код на сайте
ПерейтиПоНавигационнойСсылке ( «https://koder.by/sample_code_1c.php/» );
ВоспользоватьсяИнформацией (Истина); // Параметр: запись в память мозга
КонецЕсли;
ПерейтиПоНавигационнойСсылке ( «https://t.me/by_1cnik/» ); // Подписаться
Возврат Истина;
КонецФункции
Принимайте участие в beta-тестировании онлайн сервиса
1С:Примеры кода
ОписаниеОповещения — объект встроенного языка 1С:Предприятие, который указывает на процедуру, в которой будет продолжено исполнение кода.
23.12.2019 Рубрика: 1C:Предприятие Автор: Guesto 0
Периодически возникает необходимость выполнить частичное восстановление данных. Восстановить ИБ из резервной копии нельзя, как и допустить потери изменений.
05.09.2018 Рубрика: 1С:Примеры кода Автор: Guesto 2
Потребовалось получить имя переданного значения перечисления, но ни с первой, ни со второй попытки получить желаемое не удалось. Поиски в интрнетах привели в раздел методической поддержки ИТС, и на
29.08.2018 Рубрика: 1С:Примеры кода Автор: Guesto 0
Необходимо реализовать форму подбора соглашений с использованием отборов СКД. На форме необходимо отображать удовлетворяющие настроенному отбору элементы
18.04.2018 Рубрика: 1C:Предприятие Автор: Guesto 1
У документа Рассылка электронной почты пользователю необходимо ограничить выбор статуса до Подготоваливается и Подготовлена. Статусы Выполняется и Завершена будут устанавливаться регламентным заданием в момент выполнения рассылки и ее
14.02.2018 Рубрика: 1C:Предприятие Автор: Guesto 2
Продолжаем разработку конфигурации Менеджер задач. В прошлой части определились с функционалом, и описали справочники для хранения информации. В этой части будем разбираться с пользователями
07.02.2018 Рубрика: 1С:Примеры кода Автор: Guesto 0
Один из читателей попросил разобрать пример разработки простой конфигурации. Решил разобрать сквозной пример создания конфигурации для ведения текущих задач, назовем ее Менеджер задач.
11.10.2017 Рубрика: 1С:Примеры кода Автор: Guesto 0
Для документа Реализация товаров и услуг необходимо сделать произвольное представление документа в зависимости от вида, который указал пользователь.
20.09.2017 Рубрика: 1С:Примеры кода Автор: Guesto 11
Необходимо сделать по умолчанию не видимый элемент формы, но с возможность его отобразить — на помощь приходит пользовательская видимость элементов формы
19.07.2017 Рубрика: 1С:Примеры кода Автор: Guesto 0
Многие сервисы предоставляют или принимают данные в DBF, потому работа с файлами DBF необходима. Например выгрузка перечислениях заработной платы в банк
Как выглядит код на 1с
Язык 1С весьма прост в изучении по сравнению с любым другим языком программирования.
На территории России для многих большое значение имеет то, что можно писать код прямо на русском языке. «Можно» – значит не обязательно — можно писать и на английском, все операции и операторы имеют английский синоним.
Мы изучим язык 1С между делом сейчас, за пять минут.
Общие принципы программирования
Вне изучения языка, для тех кто не сталкивался с программированием, стоят общие принципы. Остальные — читайте дальше.
Программирование – это написание программного кода на программном языке.
Программный код – это последовательность команд (слов), которые поддерживает этот язык программирования.
Команды делятся на:
- Переменные
- Операторы
- Функции и процедуры.
Рассмотрим их в первом приближении.
Переменные
Есть цифра 12. Это значение. Сама по себе эта цифра нигде не хранится. Подули и ее уже нет Она должна где-то храниться. Переменные – это место хранения значений. Переменная может называться любым словом.
Например:
Чтото = 12;
Чтото = Чтото + 10;
Сообщить(Чтото); //будет выведено «22»
Переменная, которая является частью объекта 1С (например поле справочника) и хранится в базе данных – называется реквизит.
В 1С переменные не типизированы, это значит, что одной и той же переменной сначала можно назначить значение одного типа (например цифру), а потом другого типа (например строку) и ошибки не будет.
Однако реквизиты объектов – типизированы. Но проверки на типы при этом не происходит. Мы можем попытаться назначить реквизиту значение не того типа. 1С попытается его преобразовать (например из цифры в строку), но если не получится, то значение реквизита останется пустым.
Длина строки в переменной – неограниченная. Длина строки реквизита – задается точно, но можно задать неограниченную (поставив длину строки 0).
По буквам к строке обращаться нельзя. Но можно искать или выделять части (Найти(), Лев(), Прав(), Сред()).
Сложные переменные
Если значение одно – это просто. А когда значений – много?
- Массив Это одна колонка Excel. В каждой ячейке – переменная. У нее одно название, так же как и у обычной переменной. А к ячейке можно обратиться по номеру. Чтото = Новый Массив;
Чтото.Добавить(22); //в ячейке 1 значение 22
Чтото.Добавить(33); //в ячейке 2 значение 33
Сообщить(Чтото[0]); //выводим значение 1й ячейки - СписокЗначений То же, что и массив, только к каждой ячейке можно подписать комментарий. Чтото = Новый СписокЗначений;
Чтото.Добавить(22, «Это 22»); //в ячейке 1 значение 22
Чтото.Добавить(33, «Это 33»); //в ячейке 2 значение 33
Сообщить(Чтото.Получить(0).Значение); //выводим значение 1й ячейки
//а могли бы вывести и комментарий, тогда бы написали .Представление а не .Значение - ТаблицаЗначений Это – уже полноценная страница Excel со строчками и колонками.
Как с ней работать – посмотрим в другом уроке. - ДеревоЗначений Таблица представленная в виде дерева. Пример – окно конфигурации. Ветки, у каждой ветки может быть подчиненная ветка.
Обратите внимание – нумерация ячеек в 1С начинается не с 1, а с 0.
Если Вам необходимо вспомнить где происходит написание программы в 1С — мы обсуждали это в уроке про модули 1С.
Строки программы
Строки заканчиваются на точку с запятой «;».
Комментарий начинается с «//» — то есть эта строчка или часть строчки не будет выполняться и будет пропущена.
Значение строк нужно указывать в кавычках «Значение». Если нужно указать в значении кавычку, то она удваивается – «Значение ««а»»!».
Значение строки может быть с включением переноса строки, тогда в начале следующей строки должен стоять «|», например:
«Это начало
| и продолжение значения»
Если нужно указать специальные символы в значении строки, для этого есть специальный объект: «Символы.», например:
«Это начало» + Символы.ПС + «и продолжение значения» //ПС – перенос строки
Операторы
Это конструкции языка, которые заложены в нем самом и позволяют создавать простейшую последовательность выполнения программы.
- Условие Определенные строки кода будут выполнены если будет выполнено условие. Чтото = 12;
Если Чтото 200 Тогда
Сообщить(«Условие выполнено»);
ИначеЕсли Чтото > 200 Тогда
Сообщить(«Условие не выполнено»);
Иначе
Сообщить(«Что-то еще»);
КонецЕсли; - Цикл Определенные строки кода будут выполнены указанное количество раз. //считаем по-одному
Для Чтото = 1 по 20 Цикл
Сообщить(Чтото);
КонецЦикла; //считаем по-другому
Чтото = 1;
Пока Чтото //если у нас список значений, то можно обойти каждое из его значений
Чтото = Новый СписокЗначений;
Для каждого ЗначениеСписка из Чтото Цикл
Сообщить(ЗначениеСписка.Значение);
КонецЦикла;
//обратите внимание, что «ЗначениеСписка» — это переменная, она может называться как угодно Для того, чтоб прервать цикл, можно внутри написать команду «Прервать», для того чтобы прервать только одну итерацию цикла – команду «Продолжить».
Работа с объектами
Все объекты, с которыми мы работаем в языке – является полноценными объектами, то есть могут иметь свои данные и свои методы.
Объекты языка создаются с помощью команды «Новый», например:
Чтото = Новый Массив();
Чтото = Новый СписокЗначений();
И т.п.
Объекты 1С нельзя создать – доступ к ним можно получить с помощью так называемых менеджеров, названных соответственно по веткам конфигурации: Справочники, Документы и т.п. Методы менеджера можно расширять (см. урок по модулям 1С, модуль менеджера объекта).
Свои объекты программировать нельзя, как и наследовать или переопределять типовые.
Ошибки
Программист не всегда может догадаться, будет ли ошибка при выполнении определенной строчки кода.
Например если написать в коде внешней обработки:
Справочники.Номенклатура.НайтиПоКоду(«…») и открыть эту обработку в базе, где нет справочника с названием Номенклатура, то будет ошибка.
Чтобы этого не произошло, можно использовать следующую конструкцию:
Попытка
Справочники.Номенклатура.НайтиПоКоду(«…»);
Исключение
Чтото = ОписаниеОшибки();
Сообщить(«Ой-ой-ой»);
Сообщить(Чтото);
КонецПопытки;
Если в момент выполнения строчек программы между Попытка и Исключение возникнет ошибка, то выполнение будет прервано и перейдет на строчки между Исключение и КонецПопытки. Если не будет ошибки – эти строчки не будут выполнены.
Функция ОписаниеОшибки() работает только между Исключение и КонецПопытки и возвращает описание произошедшей ошибки.
Функции и Процедуры
Функции и Процедуры – это способ взять несколько строчек кода и назвать их каким-то словом, как переменную. Когда мы потом напишем ее название в другом месте – будет вызвана эта функция (то есть выполнены эти строки кода).
Мы неоднократно обсуждали методы объектов и обработчики событий. Функции и процедуры и являются этими методами и обработчиками.
//Программируем
Процедура КакоетоДействие()
Сообщить(«Чтото»);
КонецПроцедуры
Функция отличается от процедуры тем, что она может вернуть значение, которое было вычислено в результате выполнения этих строк когда.
Функция Посчитать(Переменная1, Переменная2)
Возврат Переменная1 + Переменная2;
КонецФункции
//Вызываем
Чтото = Посчитать(12, 20);
Сообщить(Чтото); //будет сообщение «32»
Как программировать
Программирование проводится в модуле. Соответственно Вы должны найти нужный модуль и написать там код программы.
- Создаем внешнюю обработку
- Создаем форму, добавляем на нее кнопку и делаем обработчик события – будет выполнен по открытию обработки в режиме Предприятие и по нажатию кнопки
- Или открываем модуль объекта обработка и пишем код там – будет выполнен сразу при открытии в режиме Предприятие.
Программированию конкретных объектов языка 1С мы коснемся в ближайших уроках.
Откройте ее в конфигураторе и Вы можете посмотреть программу или изменить ее.

Программный код написан в модуле объекта обработки.


Проголосовать за этот пост:
Приемы чтения кода
Для начинающих программистов хорошим тоном всегда было – «учиться программированию у мастеров». А кто может быть лучшими мастерами, чем разработчики типовых решений?! Поэтому совершенно неудивительны попытки новичков открывать модули типовых решений и просто начинать читать код, следя за развитием логики алгоритма, подмечая ньюансы и приемы программирования.
В такие моменты начинающий программист подобен литературному переводчику с неродного языка: что знал – перевел, что не знал – домыслил, что не понял – перевел так, как написал бы сам в данной ситуации.
И не беда, что поначалу половина кода кажется туманной и загадочной. Главное понимать его цель, отмечать основные вехи и как можно больше – читать, осознавать и брать на вооружение. По мере «набивания руки» в чтении кода – тумана и загадок будет оставаться все меньше.
А что бы этот процесс приносил еще больше пользы – в данной статье предлагаем определенную методику и ряд приемов, минимизирующих усилия по чтению программного кода.
Но кому в наше время нужна голая теория, не подкрепленная практикой?! Что бы доказать действенность методики – давайте сразу попробуем ее применять в конкретном примере.
Допустим, мы хотим разобраться, как в типовых решениях устроен механизм пересчета цен при изменении значения валюты документа.
Выход на нужный программный код
Ну что открываем «конфигуратор»?
Первым делом в любой ситуации полезно посмотреть на действие изучаемого механизма… в пользовательском режиме программы!
Поясню: Понимая, к чему это действие приводит, впоследствии гораздо легче делать выводы о важности тех или иных фрагментов программного кода. А это в свою очередь, позволит сэкономить время на игнорировании «очень мутных, но, похоже, не важных» для нашего механизма фрагментах.
Итак, правило первое: Перед началом анализа программного механизма, посмотрите на его действие «глазами пользователя».
Далее желательно определиться с точкой старта изучаемого механизма. Ну, в самом деле, не будем же мы читать сверху-донизу все строчки кода всех модулей программы. Их миллионы. А задействована в работе нашего мехнизма – только малая часть. Как бы на нее выйти побыстрее?
Тут полезно вспомнить, что язык системы «1С:Предприятие» — язык событийный. То есть программный код – он не сам по себе, он задействуется только в ответ на некие события, возникающие после действий пользователя.
Итак: Если хотим быстро выйти на фрагмент кода механизма – достаточно определить «провоцирующее» действие пользователя и обработчики событий, возникающих после этого действия.
Как видите, найти обработчики событий, связанных с изменением элементов формы, достаточно легко. Надо лишь в эскизе формы задействовать контекстное меню на самом элементе, и в подменю «События» посмотреть – напротив каких обработчиков проставлена пиктограмма «Р()«. Если проставлена – значит этому обработчику назначена процедура. А если обработчик подходит по смыслу нашей задачи – то именно эту процедуру надо прочитать, изучить.
Серфинг по коду
Порядок чтения изучаемой процедуры, разумеется, — «сверху-вниз» и, по возможности, «ничего не пропуская».
Но одним из принципов структурного программирования является следующий: «повторяющиеся фрагменты программы нужно оформлять в виде процедур и функций, вызываемых из программы». То есть надо быть готовым к тому, что очередная строчка кода в изучаемой процедуре будет не исполняемой командой, а именем «вызываемой из программы процедуры или функции». А вызываемая процедура или функция уже в свою очередь может включать в себя вызовы других процедур или функций, а те – других…
Фактически чтение «сверху-вниз» в типовых конфигурациях зачастую превращается в «серфинг» по вызывающим друг-друга процедурам и функциям. Как не «утонуть», не запутаться при этом серфинге – смотрим в следующем ролике:.
Шаг вперед: F12> — переход к определению вызываемой процедуры, функции или переменной;
Шаг назад: комбинация клавиш Ctrl + » —«> (причем «минус» надо нажимать на верхнем ряду клавиатуры, а не на отдельной боковой).
Кроме этих двух основных приемов «серфинга» есть еще один вспомогательный:
Alt + F12> — найти использование процедуры или функции. Эта комбинация клавиш позволит оценить «популярность» очередной процедуры или функции:
Анализ вызываемых процедур и функций
Ну что ж, теперь можно подступаться к анализу вызываемой функции «НеобходимПересчетВВалюту».
Что бы чтение функции (процедуры) сопровождалось еще и пониманием прочитанного – желательно придерживаться следующего плана:
1) Контекст
2) Комментарий
3) Параметры
4) Текст
То есть – текст в последнюю очередь.
Почему? Потому что «дешевле и быстрее» выводить умозаключения «от общего к частному», а не наоборот. Потому что легче читать код функции, когда Вы уже четко осознаете:
1) Где она расположена, и какое окружение ей доступно просто из-за того, что она расположена именно там?
2) Что мне хотел посоветовать/пояснить автор этой функции?
3) Какие данные (недоступные из контекста) автор бы вынужден передать со стороны вызывающей процедуры(функции)?
В следующем ролике показано – как именно это осознание можно выполнять:
Ну что ж, осознали.
Вот теперь можно приступать к чтению:
Синтакс-помощник, помогай!
Резюмируем: в процессе «серфинга по коду» можно наткнуться на системные процедуры(функции). Отличие от обычных в том, что их код «зашит» в платформу и поэтому представляет для нас «черный ящик». Что там внутри — не известно. Да и не очень-то хотелось бы с этим разбираться. Вполне достаточно, если бы нам кто-то предоставил описание:
- входной для «черного ящика» информации;
- планируемого действия черного ящика;
- выходной из «черного ящика» информации;
- особенностей поведения «черного ящика».
Так вот, все это описание содержится в инструменте платформы «Синтакс-помощник«:
Приведенный в этом ролике пример работы с синтакс-помощником – это не какое-то особенное и самобытное действие в процессе чтения чужого кода. Это обычная рутинная, рефлекторная повседневность. Это как во время ходьбы размахивать руками. Не задумываемся, просто машем и все тут.
Ну, вот смотрите сами, как идет дальнейший анализ нашей функции:
А вот так освоенные нами «F12«, Ctrl + » —«> и «Поиск в Синтакс-помощнике» помогают осознать следующую часть алгоритма:
Изучение привлекаемых объектов
В процессе чтения кода кроме вызываемых или системных процедур и функций мы можем еще наткнуться на привлечение других объектов. Вот сейчас мы в рамках контекста формы документа с алгоритмом разбираемся. Но в самом алгоритме прописано получение данных из совсем другого объекта. Смотрите, как можно и в этом случае воспользоваться теми правилами чтения кода, что мы уже изучили:
Отладчик, показывай!
Хорошо когда Вам абсолютно прозрачны преобразования данных, выполняемые в коде алгоритма. То есть читаете код и понимаете: «ага, сюда, значит, у них заходит проволока, вот этот барабан крутится, вот эти насадки загибают, а вот эта – обрезает. «
Но иногда понимание сводится к следующей схеме:

Наглядность! Вот что требуется при чтении сложных фрагментов кода.
Наглядность преобразований данных на каждом этапе.
Так вот, платформа «1С:Предприятие» имеет шикарный инструмент для обеспечения наглядности. Называется он – «Отладчик».
Итак, отладчик позволяет посмотреть результат любой переменной, метода или функции, выполнимых в рамках текущего кода (текущего контекста).
За работу, товарищи!
А что в алгоритме было дальше… — узнайте, пожалуйста, сами.
Ну, правда, попробуйте.
Убедитесь, что это не сложно и по-своему приятно.
Ведь что может быть приятнее для начинающего программиста, чем полностью разобраться в сложном, запутанном деле алгоритме.
Мечтаете стать классным специалистом?
Обращайтесь за бесплатной консультацией
- Наши курсы
- Наши курсы
- Схема курсов
- Расписание курсов
- Прайс-лист
- Пакеты курсов
- 1C:Профессионал
- Квалификационное тестирование 1С:Тестцентр
- Все форматы
- Удаленное обучение
- Очное дневное
- Очное вечернее
- WEB-обучение
- Курс-погружение дневной очный
- Курс-погружение дневной удаленный
- Курс-погружение вечерний очный
- Курс-погружение вечерний удаленный
- Онлайн-курс
- Продление доступа к курсам
- Курс выходного дня
- Видеокурс
- Пакеты курсов
- Видеоматериалы
- Учебные версии программ
- Блог
- О центре
- Отзывы и благодарности
- Наши преподаватели
- Новости учебного центра
- Сведения об образовательной организации
«1С-Учебный центр 3», 2023. Разработка сайта — Андерскай Диджитал
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
