Примеры кода 1С 8.3 — Программист 1С Минск. Автоматизация бизнеса.
По разделам структурированы различные конструкции кода, которые помогут начинающему разработчику понять логику программирования 1С 8.3, а профессионалу восстановить в памяти забытые модули и научиться новым «фишкам». Перед внедрением данных примеров в релиз рабочей конфигурации, рекомендуется детально протестировать код (смоделировать различные действия пользователя) в локальной копии БД 1С.
&НаКлиенте
Функция РешитьЗадачуПо1С83 ( КодНайденВМозге ) Экспорт // Быстро и оптимально
Если КодНайденВМозге Тогда // Истина — используем свои знания и опыт
ВоспользоватьсяИнформацией (Ложь); // Параметр: запись в память мозга
Иначе // Найти нужный код на сайте
ПерейтиПоНавигационнойСсылке ( «https://koder.by/sample_code_1c.php/» );
ВоспользоватьсяИнформацией (Истина); // Параметр: запись в память мозга
КонецЕсли;
ПерейтиПоНавигационнойСсылке ( «https://t.me/by_1cnik/» ); // Подписаться
Возврат Истина;
КонецФункции
Принимайте участие в beta-тестировании онлайн сервиса
Примеры программирования в 1С 8
Как осуществить запись в журнал регистрации «1С: Предприятие 8»?
Процедура РегистрСведенийСписокДополнительныеУслугиПередУдалением(Элемент) ТС = Элемент.ТекущаяСтрока; Комментарий = "Код: " + ТС.Код + ". Номенклатура: " + ТС.Номенклатура + ". Вид наценки: " + ТС.ВидНаценки; ЗаписьЖурналаРегистрации("Данные.Удаление", УровеньЖурналаРегистрации.Информация, Метаданные.РегистрыСведений.ДополнительныеУслуги, РежимТранзакцииЗаписиЖурналаРегистрации.Независимая, Комментарий); КонецПроцедуры
Как правильно выбрать из составного вида информации?
Процедура УслугиПунктОтправкиНачалоВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; МассивТипов = Новый Массив(); МассивТипов.Добавить(Тип("СправочникСсылка.НаселённыеПункты")); ОписаниеТипов = Новый ОписаниеТипов(МассивТипов); ЭлементыФормы.Услуги.Колонки.ПунктОтправки. ЭлементУправления.ОграничениеТипа = ОписаниеТипов; // Первый вариант ЭлементыФормы.Услуги.Колонки.ПунктОтправки.ЭлементУправления.Значение = ОписаниеТипов.ПривестиЗначение( ЭлементыФормы.Услуги.Колонки.ПунктОтправки.ЭлементУправления.Значение); // Второй вариант ОписаниеТипов.ПривестиЗначение( ЭлементыФормы.Услуги.ТекущаяСтрока.ПунктОтправки); КонецПроцедуры
Как определить вид объекта «1С:8»?
Если ТипЗнч(ТекОбъект) = Тип("СправочникСсылка.Номенклатура") Тогда ... КонецЕсли; Если ТипЗнч(ТекОбъект) = Тип("Строка") Тогда ... КонецЕсли;
Как около элемента управления формы открывается выпадающий список?
Необходимо воспользоваться способом формы из меню («Список Значений», «Элемент Формы»):
//выведем пользователю список вариантов, //для ввода СФ около элемента управления «Кнопка» СписокДействийВводСФ = Новый СписокЗначений(); СписокДействийВводСФ.Добавить( "ВвестиНовыйСчетФактуру", "Ввести новый счет-фактуру"); СписокДействийВводСФ.Добавить( "ДополнитьСуществующийСчетФактуру", "Дополнить существующий счет-фактуру"); // ФормаДокумента.ТекущийЭлемент - //Элемент, около которого открывается список ВыбранныйВариантВводаСФ = ФормаДокумента.ВыбратьИзМеню( СписокДействийВводСФ, ФормаДокумента.ТекущийЭлемент); Если ВыбранныйВариантВводаСФ = Неопределено Тогда Возврат; КонецЕсли; Если ВыбранныйВариантВводаСФ.Значение = "ВвестиНовыйСчетФактуру" Тогда ... КонецЕсли;
Процесс создания пустой базы в «1С»
Изначально открывается список баз при помощи нажатия на ярлык «1С: Предприятие 8», куда добавляется новая база методом нажатия на кнопку «Добавить». В открывшемся диалоге следует выбрать «Добавление в список существующей базы данных» и нажать кнопку «Далее». Затем указывается наименование «Новая база» и вновь нажимается кнопка «Далее». Далее выбирается каталог, где будет храниться база и жмется кнопка «Готово». Потом следует открыть базу в режиме Конфигуратора. Процесс создания пустой базы на этом завершен!
Где меняется значение константы «Использовать дату запрета для сотрудников с «Полными правами»?
Необходимо пройти по следующему пути: Панель Функций – Закладка «Предприятие» – Настройка программы – Вкладка «Запрет изменения данных» или Пункт меню Операции – Константы – Настройка программы – Вкладка «Запрет изменения данных».
Как программно на «Панели» переключаются закладки (страницы)?
Панель1 = ЭлементыФормы.Панель1; Панель1.ТекущаяСтраница = Панель1.Страницы.Страница2; Панель1.ТекущаяСтраница = Панель1.Страницы["Страница2"];
Как активизируется элемент формы?
Если НЕ ЗначениеЗаполнено(Ответственный) Тогда Предупреждение("Сначала заполните поле: Ответственный!", 3); ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.Ответственный; КонецЕсли;
Как обращаться к странице формы, если на нее не помещен элемент управления формы «Панель»?
Форма обладает свойством «Панель», через которое необходимо обращаться. Например:
ПанельФормы = ЭтаФорма.Панель; СтраницыФормы = ПанельФормы.Страницы; Если ПанельФормы.ТекущаяСтраница = СтраницыФормы.Страница1 Тогда //Мы на первой странице . . . ИначеЕсли ПанельФормы.ТекущаяСтраница = СтраницыФормы.Страница2 Тогда //Мы на второй странице . . . Иначе //Мы на последней странице . . . КонецЕсли;
Где изменить главные значения пользователей?
Необходимо пройти по следующему пути: Операции – Справочник – Пользователи – Выберите нужного Вам пользователя – Основные значения для подстановки в документы и справочники.
Тут меняется «Основная ставка НДС» или «Основной склад».
Как в поле ввода в табличке устанавливается значение?
Мы владеем документом с табличной частью «Состав», содержащей реквизит «Автомобиль» вида «Справочник Ссылка. Транспортные Средства». Необходимо, чтобы поле ввода «Номер Автомобиля» было заполнено данными реквизита «Автомобиль. Гос Номер».
Как устанавливается значение в поле «Номер Автомобиль» индивидуально для каждой строки таблицы?
Процедура СоставПриПолученииДанных(Элемент, ОформленияСтрок) Для каждого ОформлениеСтроки из ОформленияСтрок цикл ВычисленноеЗначение = ОформлениеСтроки.Ячейки.Автомобиль.Значение.ГосНомер; Оформлениестроки.Ячейки.НомерАвтомобиля. УстановитьТекст(ВычисленноеЗначение); КонецЦикла КонецПроцедуры
Как правильно удаляются строки из текста при помощи встроенного языка системы «1С:8»?
Процедура УдалитьСтрокиТекста() ТекстДок = Новый ТекстовыйДокумент; ТекстДок.Прочитать("Текст.txt"); Сч = 1; Пока Сч ТекстДок.КоличествоСтрок() Цикл Строка = ТекстДок.ПолучитьСтроку(Сч); Если Найти(Строка, "1С") > 0 Тогда ТекстДок.УдалитьСтроку(Сч); Иначе // Благодаря этой переменной мы // не пропускаем строки в тексте Сч = Сч + 1; КонецЕсли; КонецЦикла; ТекстДок.Записать("Текст.txt"); КонецПроцедуры
Как в «1С:8» получить определенную подстроку по ее позиции из строки с разделителями?
//****************************************************************************** // ПолучитьСтр(знач ГдеИщем, Ном = 1, Р = ",") // // Параметры: // знач ГдеИщем - строка, Ном = 1 - число, Р = "," - строка // // Возвращаемое значение: // Строка // // Описание: // Возвращает подстроку под номером Ном из строки ГдеИщем с разделителями Р // Функция ПолучитьСтр(знач ГдеИщем, Ном = 1, Р = ";") Ном1 = Число(Ном); Поз=Найти(ГдеИщем,Р); Если (Поз = 0) Тогда Возврат ГдеИщем;КонецЕсли; Стр1=Лев(ГдеИщем,Поз-1); Если Ном1 = 1 Тогда Возврат Стр1;КонецЕсли; СчетчикЦикла = 0; Для СчетчикЦикла = 2 По Ном1 Цикл ГдеИщем=Сред(ГдеИщем,Поз+1,СтрДлина(ГдеИщем)-Поз); Поз=Найти(ГдеИщем,Р); Если (Поз = 0) Тогда Возврат ГдеИщем;КонецЕсли; Стр=Лев(ГдеИщем,Поз-1); Если Ном1 = СчетчикЦикла Тогда Возврат Стр;КонецЕсли; КонецЦикла; КонецФункции // ПолучитьСтр()
Рассмотрим пример применения:
НужнаяСтрока = "1С,PHP,Delphi,HTML,CSS"; Сообщить(ПолучитьСтр(НужнаяСтрока, 3, ","));
ТОП ПРОДАЖ
- 1С:Бухгалтерия 8
- 1С:Управление нашей фирмой 8
- 1С:Управление торговлей 8
- 1С:Управление предприятием 2
- 1С:ЗУП 8
- 1C:Учет путевых листов и ГСМ
- 1С:Учет в управляющих компаниях
- Электронные поставки 1С
Облачные сервисы
- 1С:Фреш
- 1С:Готовое рабочее место
- 1С:ЭДО
- Маркировка товаров
- 1С:Отчетность
- 1C:Товары
- 1C-Ритейл Чекер
Язык 1C
Язык программирования 1C — язык для создания кодов и алгоритмов внутри программного обеспечения «1C:Предприятие» и оптимизированный для работы на платформе. Он не имеет собственного названия и обозначается как «встроенный язык программирования».
Освойте профессию
«1С-программист»
Где используется 1C
Язык 1C — предметно-ориентированный: коды на нем пишутся только на платформе «1С:Предприятие». Целевая аудитория программы — крупные организации и предприятия. Они используют платформу для систематизации бизнеса и полной автоматизации таких процессов, как составление отчетов, ведение бухгалтерии и документооборот.
Особенности 1C
1C считается языком высокого уровня. Он схож с такими языками, как JavaScript, Pascal и BASIC, что значительно облегчает его изучение. В то же время у 1С есть ряд характерных особенностей, отличающих его от других языков программирования.
- Простота. У этого языка низкий порог вхождения. Обычно разработчики изменяют готовые типовые конфигурации, что делает программирование на 1C понятным для начинающих.
- Доступность. Все коды пишутся на русском, что значительно экономит время, затрачиваемое на перевод. Но 1C — двуязычная программа: по желанию вы можете свободно программировать и на английском языке.
- Предварительная компиляция. Модули, написанные на языке 1C, перед началом исполнения компилируются во внутренний байт-код.
- Сохранение скомпилированных модулей. Все они остаются в кэше.
- Мягкая типизация. Типы переменных определяются их значением.
- Наличие синтаксис-помощника. Это справочник-подсказка, содержащий всю информацию о синтаксисе 1C и правилах работы.
9,5 месяцев
1С-программист
Легкий вход в 1C с нуля — не нужно технического образования
Из чего состоит «1C:Предприятие»
Программа 1C состоит из двух частей: платформы и конфигурации.
Платформа — это база, на основе которой разрабатываются конфигурации: без нее создание и изменение конфигураций невозможно. Конфигурация или прикладное решение — написанная на языке 1C программа, которую используют пользователи. Одна платформа может содержать сразу несколько конфигураций. По методу разработки конфигурации делятся на типовые — созданные самой компанией — и нетиповые. К последним относят разработанные с нуля или видоизмененные типовые конфигурации.
Что такое переменные
Переменные — место размещения данных, необходимое для их временного хранения в процессе обработки. Это значит, что все ваши переменные исчезают после того как программа завершается. В переменной можно хранить только одно значение.
У каждой переменной есть свое имя, которое образуется по следующим правилам:
- Каждое имя начинается с русской или английской буквы. Также допустимо начало со знака «_».
- Имя может содержать числа, но не может с них начинаться.
- Длина имени не ограничена.
- Нельзя использовать букву «ё».
- Имя не должно содержать пробелов.
Создать переменную проще простого. Для этого достаточно просто придумать имя и записать его перед знаком равенства. Например:
Переменные объявляются в явном и неявном виде, при этом назначение типа переменной всегда будет неявным. Объявлять переменную в явном виде совсем не обязательно.
Модули и методы
Программный код 1C расположен в конфигурации. Сама конфигурация состоит из объектов, а объекты — из модулей. Именно здесь хранится код.
Модуль — это текстовый файл с прописанным программным кодом.
Но что программа делает с готовыми модулями?
Чтобы выполнить какое-то действие с объектом и изменить конфигурацию, программа использует методы — различные способы, запускающие процесс обработки данных. Определенный набор методов уже заранее создан разработчиками программы, но вы также можете создать собственные методы, написав их на 1C.
1С-программист — самая востребованная IT-профессия в России. Она подойдет всем, независимо от опыта и образования
События
У программы 1C есть свой жизненный цикл: запуск, действия пользователя, выключение. Команды, которые задаются пользователем, выполняются программой и вносят определенные изменения, называются событиями.
События — набор действий, которые используются в конкретных ситуациях. Это значит, что исполнение модулей происходит только тогда, когда возникает нужное событие. Благодаря системе событий встроенный язык также называют событийно-зависимым.
Важно: все возможные события заданы платформой и известны заранее, поэтому придумать что-то новое и неизвестное программе нельзя.
Значения и их коллекции
Значение — то, с чем работает программа. Это данные, записанные с диска или введенные программистом вручную. Программа использует их, обрабатывает и показывает результат. Простые значения бывают разных типов, где каждый задает определенную функцию:
- Null. Используется, чтобы обозначить отсутствие значения.
- Число. Задает число, с которым можно выполнять простые арифметические действия — сложение, вычитание, умножение или деление.
- Дата. Используется для указания даты и времени. Обратите внимание на особенность программирования на 1C — дата и время всегда прописываются полностью, с точностью до секунд.
- Строка. Прописывается в кавычках и задает символьную строку.
- Булево. Получается в результате логических операций и обозначает «правду» или «ложь». Чтобы было понятнее, возьмем в качестве примера операцию Равно: если вы сравните два одинаковых числа, то получите правду, если два разных — ложь.
- Неопределенно. Применяется для значений, не относящихся ни к одному из вышеперечисленных типов.
Совокупность примитивных значений образует объекты встроенного языка. Примером такого объекта являются универсальные коллекции значений — временные хранилища данных, существующие в оперативной памяти компьютера на протяжении одного рабочего сеанса.
Рассмотрим самые значимые коллекции:
- Таблица значений. Объект, служащий для хранения и обработки значений любого типа. Выглядит как обычная таблица, созданная в Excel.
- Дерево значений. То же, что и таблица значений. Отличительная особенность дерева — иерархический способ записи данных. Это значит, что у каждой строки есть подчиненная строка, у которой также могут быть свои подчиненные. Только одна строка, самая первая, считается родительской и не имеет своего родителя.
- Список значений. Временное хранилище данных, позволяет управлять значениями, редактировать их или удалять. Используется для работы с интерфейсом.
- Массив. Служит для сбора и хранения произвольных значений. Массив — пронумерованная коллекция: это значит, что у каждого элемента есть порядковый номер, который называется индексом и начинается с нуля. Массив также может быть многомерным, то есть созданным из других массивов.
- Структура и соответствие. Служат для хранения данных и состоят из двух парных элементов «ключ-значение». Каждое значение здесь имеет собственное уникальное имя, т. е. ключ. В структуре ключ — строго строкового типа, а значение — произвольного. В соответствии ключ также становится произвольным.
Как программировать на 1C
Весь процесс программирования происходит в уже знакомом нам модуле. Давайте рассмотрим его поэтапно на примере самой простой программы «Привет, мир!».
- Запустите программу «1C:Предприятие».
- Откройте пустую базу в режиме конфигуратора.
- На панели управления нажмите на «Открыть конфигурацию».
- В открывшемся меню правой кнопкой мыши нажмите на пункт «Конфигурация» и откройте модуль приложения.
- Перед вами открывается пустая программа — текстовый документ, в котором можно писать.
- Наберите команду: Сообщить («Привет, мир!»);.
- Запускаем программу «1C:Предприятие» с помощью кнопки «Начать отладку».
- В приложении появится готовое сообщение.
1С-программист
Вход в профессию простой: весь код на русском языке, не нужно уметь программировать и иметь техническое образование. При этом вакансий на рынке около 10 000 — можно найти работу удаленно или в вашем регионе.
alexaandrov / 1C-sample
Save alexaandrov/739e16e1786ab2b3d6bc to your computer and use it in GitHub Desktop.
1С пример кода
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
&НаКлиенте |
Функция РассчитатьПроцентНаценки(ЦенаЗакупки, ЦенаПродажи) |
ПроцентНаценки = 0; |
Если ЦенаЗакупки <> 0 Тогда |
ПроцентНаценки = (ЦенаПродажи — ЦенаЗакупки) * 100 / ЦенаЗакупки; |
КонецЕсли; |
Возврат ПроцентНаценки; |
КонецФункции |
&НаКлиенте |
Процедура ПоследняяЦенаЗакупкиПриИзменении(Элемент) |
Объект.ПроцентНаценки = РассчитатьПроцентНаценки(Объект.ПоследняяЦенаЗакупки, |
Объект.ЦенаПродажи); |
КонецПроцедуры |
&НаКлиенте |
Процедура ЦенаПродажиПриИзменении(Элемент) |
Объект.ПроцентНаценки = РассчитатьПроцентНаценки(Объект.ПоследняяЦенаЗакупки, |
Объект.ЦенаПродажи); |
КонецПроцедуры |