alebul

alebul

На Пикабу
Дата рождения: 18 ноября
1332 рейтинг 536 подписчиков 3 подписки 9 постов 5 в горячем
21

1С Без Воды. Документы

Серия 1С Без Воды

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

Включим его в подсистему учет доходов.

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

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

Помимо типа мы можем настроить непосредственно свойства этого типа, для числа это Длина и Точность. Длина это сколько всего может быть символов в числе, точность это количество знаков после запятой. Так как мы работаем с деньгами то установим точность 2 (про копейки думаю никому рассказывать не надо), а длину можем оставить 10 по умолчанию.

Теперь вы можете спросить а нафига мы в прошлый раз создавали справочники счета и статьи доходов и расходов? Мы же не будем чисто ради указания одной суммы разрабатывать наше приложение и документ для этого, нам нужно видеть конкретно откуда пришли денежки. В документе же мы должны иметь возможность указать несколько разных счетов и статей дохода, для этого существует табличная часть. То что находится в реквизитах можете представить как шапка документа, а табличная часть это таблица с произвольным количеством строк, вспомните например квитанции за ЖКХ там так же есть какие-то общие данные и есть таблицы. Давайте добавим табличную часть и назовем ее допустим - Деньги (ну или нафантазируйте свое название).

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

Первый реквизит у нас будет Счет.

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

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

Давайте аналогичным образом добавим реквизит - СтатьяДоходов. Указав тип СправочникСсылка.СтатьиДоходов. Кстати после того как вы добавили хотя бы 1 реквизит табличной части выделив его вы уже далее можете добавлять новые просто нажатием клавиши Insert.

Ну и последний реквизит в табличной части который нам нужен это Сумма. Тип Число - длина 10 точность 2.

Итак у нас есть реквизит документа - СуммаДокумента и табличная часть с колонками (реквизитами табличной части) Счет, СтатьяДоходов и Сумма. Давайте применим изменения, можно нажать сначала F7 и согласиться с изменениями.

А можно нажать F5 что так же вызовет процедуру применения изменений конфигурации и после подтверждения откроет 1с в режиме предприятия. Давайте попробуем создать наш документ. Выберем раздел учет доходов и наш документ Приход денег.

Нажмем команду Создать, откроется форма создания нового документа.

Здесь мы видим поля Номер, Дата, Сумма документа и нашу табличную часть. Поля номер и дата мы не добавляли и как вы могли догадаться если помните прошлую статью это стандартные реквизиты документа. Они есть всегда. При наших текущих настройках дата у нового документа будет всегда подставляться текущая, номер будет автоматически генерироваться по возрастанию. Давайте добавим строку табличной части.

У нас еще нет ни одного счета и статьи доходов. Мы можем их создать открыв соответствующие справочники. А можем прямо на ходу при заполнении документа. Для этого пишем в поле счета название счета, ну например Карта. И нажимаем кнопку с плюсиком у всплывающего окна.

Открывается форма создания нового элемента справочника, в ней жмем Записать и закрыть (либо Ctrl+Enter, на будущее это сочетание всегда будет вызывать команду которая выполняется при нажатии желтой кнопки, желтая кнопка это основная команда). Код здесь заполнится автоматически по аналогии с полем Номер в документе.

Похожим образом давайте в поле Статья доходов добавим статью, например Зарплата.

Ну и последняя колонка указываем нужную сумму. Да я здесь ошибся, название колонки должно быть не Число а сумма.

Мы видим уже знакомую нам по конфигуратору звездочку в заголовке документа. Из чего мы можем понять что наш документ еще не записан (то есть еще нет даже черновика и документ не существует еще в нашей базе).

Ну и у нас еще есть поле Сумма документа которое нам тоже нужно заполнить

Вы спросите а нафига нам эту сумму заполнять в 2х местах? Но у нас ведь есть табличная часть где мы можем добавить еще одну строку и например указать счет Наличные, статью доходов указать например продажа. И тогда в поле сумма документа нам нужно будет указывать итог по колонке Сумма.

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

Итак мы хотим чтобы поле СуммаДокумента автоматически рассчитывалось. Мы можем рассмотреть 2 варианта решения этой задачи. 1й это заполнение поля при нажатии кнопки записать или провести, 2й это при изменении поля Сумма в табличной части.

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

Еще один момент на котором надо остановиться это модуль. Код пишется в модулях что представляет из себя грубо говоря текстовый документ прикрепленный к какому либо свойству объектам. Про модули и их структуру мы поговорим чуть позже -какие они бывают а сейчас нам нужно знать что нам нужен модуль объекта нашего документа. Открыть этот модуль можно кликнув правой кнопкой мыши по нашему новому документу и выбрав Модуль объекта.

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

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

Вот и весь код. Нажмем F5, так как у нас уже запущен режим предприятия то надо будет согласиться с запросом о перезапуске. А так как у нас изменилась конфигурация то так же согласиться с запросом об обновлении.

Откроем наш ранее созданный документ и попробуем например либо изменить сумму в строке либо добавить новую и записать документ. Мы увидим что значение в поле Сумма документа уже пересчитается само.

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

Открывается окно редактора нашей формы. Здесь так же все основано на событиях и наиболее популярные события это нажатия на различные команды и изменение полей. Для того чтобы нам добавить событие для колонки сумма мы можем кликнуть правой кнопкой мыши на поле сумма либо в верхней вкладке - Элементы, либо в нижней - Форма. Далее выберем пункт События - ПриИзменении.

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

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

Видим процедуру с надписью &НаКлиенте. Эта штука называется директива компиляции, пишется перед процедурой или функцией и начинается со знака амперсанда &. В нашем случае эта директива (можно перевести как приказ) говорит компилятору (программа которая преобразует наш код в команды понятные процессору компьютера) что эта процедура должна выполнять только на клиенте. Ну и собственно здесь нам надо по аналогии с кодом в модуле объекта присвоить сумме документа итог по колонке сумма. Здесь немного хитрее, напрямую написать СуммаДокумента мы уже не можем. Напрямую мы можем обращаться к реквизитам формы только. Если мы перейдем на вкладку Форма то в разделе реквизитов мы увидим только Объект.

Более подробно про реквизиты формы что это такое и почему это не реквизиты документа я расскажу в других постах, пока представьте себе что на форме связанной с документом есть реквизит Объект который представляет из себя полную копию данных документа, которую мы заполняем и потом при записи уже эти данные переносятся в сам документ. А то что мы видим на форме - поля номер, дата, сумма документа и табличную часть это все элементы формы. Элементы формы показывают значения реквизитов формы которые представляют из себя уже копию связанного с формой документа. Итак Объект это копия открытого документа и если мы раскроем плюсик увидим уже внутри объекта нужный нам реквизит СуммаДокумента. Поэтому чтобы в модуле форму его заполнить нам нужно писать Объект.СуммаДокумента. А чтобы посчитать итог табличной части - Объект.Деньги.Итог("Сумма");

Применяем изменения и запускаем наш сеанс. Теперь если мы в табличной части изменим поле сумма после нажатия Enter в поле Сумма документа будет автоматический пересчет.

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

Показать полностью 37
43

1С Без Воды. Знакомство с конфигуратором. Начинаем свой проект

Серия 1С Без Воды

Всем привет. Я подумал все таки далее уже особенности синтаксиса мы будем учить постепенно создавая свой проект (прикладное решение), на котором мы помимо синтаксиса вообще посмотрим как разрабатывается простое приложение, познакомимся с основами учета и прочими моментами. Такой подход не является новинкой в обучении. Наше приложение будет решать задачу учета домашних финансов. Но сначала нам надо немного познакомиться с конфигуратором, по мере разработки мы будем изучать новый функционал. Итак открываем нашу базу для разработки в режиме конфигуратора и видим такое пустое окно.

Первое наше действие при работе с новой конфигурацией это нам нужно открыть саму конфигурацию для работы. Делается это одноименной кнопкой расположенной на верхней панели или сочетанием клавиш Ctrl+Shift+C.

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

Давайте кратко по ним пробежимся, только по тем которые нам сейчас или в ближайшее время понадобятся.

  • Константы. Служат для хранения в базе данных одного значения. Например названия организации или какой-либо настройки.

  • Справочник. Хранят в себе справочную информацию, например список сотрудников, список номенклатуры и т.д.

  • Документы. С помощью документов непосредственно осуществляется учет, любая хозяйственная операция (закупка материалов, продажи, выдача зарплаты) отражается документом.

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

  • Отчеты. В простейшем случае таблица по типу Excel где у нас выведены нужные нам данные. Например отчет о продажах, закупках. В основном берут данные из регистров.

Думаю пока хватит пожалуй, все это естественно более подробно будет рассматриваться далее.

Имя конфигурации. Подсистемы. Палитра свойств.

Для начала давайте назовем наше приложение и познакомимся немного с палитрой свойств. Вы можете заметить что в левой панели некоторые объекты с плюсиком, который можно нажать и развернутся внутренние объекты, мы уже говорили что эта панель это дерево объектов метаданных и на самой верхушке этого дерева находится непосредственно сама Конфигурация. Если нажать двойным кликом или выделить мышкой объект Конфигурация и нажать Alt + Enter то справа откроется панель - Палитра свойств.

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

Назовем наше приложение например - Учет домашних финансов. Имя даем в соответствии с правилами именования переменных.

Теперь давайте познакомимся с Подсистемами. Если говорить упрощенно то подсистемы служат для группировки данных в разделах меню. Например для нашего приложения как вариант нам могут понадобиться разделы - Учет доходов, Учет расходов, Администрирование. В учете доходов и расходов мы будем создавать соответствующие документы для отражения наших доходов и трат. Администрирование чисто технический раздел где могут находится какие-то вспомогательные инструменты или настройки. Давайте создадим эти подсистемы. Находятся подсистемы в разделе - Общее -> Подсистемы.

Выделим Подсистемы и нажмем Insert (Либо команда добавить на панели меню конфигурации или через правую кнопку мыши)

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

Вы можете заметить пару изменений после добавления подсистем (и переименования конфигурации). Звездочка возле надписи Конфигурация значит что мы что-то поменяли в конфигурации но еще не сохранили, синий бочёнок значит что мы еще не применили наши изменения к конфигурации базы данных, давайте сохраним нашу конфигурацию нажав Ctrl + S либо значок сохранения на верхней панели и увидим что к надписи конфигурации добавился знак <!> что значит то что я написал ранее - изменения не применены. Что это значит и что еще за конфигурация базы данных. Давайте немного подробнее разберем в следующем разделе.

Основная конфигурация. Конфигурация базы данных.

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

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

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

Закроем окно и применим наши изменения, нажмем на синий бочёнок либо клавишу F7 и бочёнок посереет, а знак <!> исчезнет.

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

Справочники.

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

Подробно все поля мы сейчас рассматривать не будем, а только те что нужны нам сейчас. Для начала рассмотрим как именуются справочники. Справочник это множество каких-то данных соответственно Имя справочника задается обычно во множественном числе, в нашем случае Счета. Но если все оставить так как есть то когда мы будем создавать новый счет в заголовке у нас будет слово Счета, что вроде бы как не совсем логично ведь мы создаем один счет. Для этого есть поле - Представление объекта, то есть то как будет называться отдельный экземпляр справочника в единственном числе. Зададим представление объекта - Счет.

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

У многих объектов есть такое понятие как реквизиты. Это свойства связанные именно с этим объектом, например реквизит Имя, мы будем так же далее добавлять и свои реквизиты, в нашем окне они находятся на вкладке данные. Здесь надо обратить внимание что есть стандартные реквизиты и реквизиты которые добавляем мы сами.

У справочника нас интересуют 2 стандартных реквизита - Код, Наименование. Посмотреть весь список стандартных реквизитов (для любопытных) можно нажав кнопку стандартные реквизиты, некоторые помечены серым и они недоступны потому-что не заданы соответствующие настройки.

Код служит для идентификации элемента справочника и представляет из себя либо строку либо число. Представление это то как будет отображаться элемент справочника в пользовательском режиме и может не совпадать с его наименованием, у справочника представление может быть в виде наименования либо в виде кода. У наименования так же можно выбрать длину и здесь мы можем например поставить длину 100 символов, максимальная длина наименования у всех объектов это 150. Если мы в эту длину не умещаемся тогда создается отдельный реквизит с именем например - ПолноеНаименование и у него уже указывается какая длина нужна без ограничений.

Далее наверное нам бы хотелось видеть а куда именно мы потратили деньги или каким образом заработали? В учете есть такое понятие как статьи доходов и расходов. Вот они нам и помогут определять куда ушли или откуда пришли денежки (например траты на еду, зарплата, продажа бу и прочее). Давайте создадим 2 справочника аналогичным образом - СтатьиДоходов, СтатьиРасходов. Длину наименования укажем 100. Вкладку подсистемы при создании справочников не трогаем и рассмотрим другой способ добавления объектов в подсистемы. Двойным кликом откроем нашу подсистему УчетДоходов и перейдем на вкладку Состав.

Здесь мы раскроем Справочники и поставим галочку на справочнике СтатьиДоходов. Аналогичным образом включим справочник СтатьиРасходов в подсистему УчетРасходов.

Думаю для начала этих справочников нам хватит.

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

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

Показать полностью 21
59

1С Без Воды. Синтаксис языка

Серия 1С Без Воды

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

Объявление переменной

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

Условные операторы

Тут все просто как в анекдоте:

Жена отправляет мужа-программиста в магазин: - Купи батон хлеба, если
будут яйца - возьми десяток.
Муж возвращается из магазина с десятью батонами.
- Ты зачем столько хлеба купил?
- Так ведь яйца были...

Если какое-то выражение выдает нам Истину то выполняем одно действие иначе другое действие. Простейшее условие выглядит так:

Не забываем про точку с запятой (хотя все равно по началу будете) в конце каждого выражения.

Другие варианты Если

То есть мы можем выполнить одно выражение (Если) в зависимости от какого-то выражения, либо выбрать из двух выражений (Если Иначе), либо из произвольного количества выражений (Если ИначеЕсли).

Циклы, массивы

Для того чтобы поговорить о циклах давайте немного затронем тему массивов. Массив это просто упорядоченная коллекция переменных. То есть мы создаем переменную с типом массив и через методы массива можем туда добавлять другие переменные (данные) и если нам нужны будут значения этих переменных то мы будем обращаться к номеру массива где эти переменные лежат, такой номер называется индекс в массиве и во многих других коллекциях индекс всегда начинается с 0. Давайте создадим массив и добавим данные. Варианты создания массивов.

Обычно все пользуются вариантом №1. И тут мы уже можем увидеть что у нас повторяются одни и те же действия при добавлении данных, если мы знаем что нам нужно в массив добавить какие-то упорядоченные данные например последовательность чисел то тут нам облегчат жизнь циклы.

Цикл Для.

Начиная от значения Счетчик и по ограничение (10) добавляем в массив значения счетчика, По 10 значит что 10 последнее значение счетчика так же добавится в массив.

Так же как и добавили так же мы можем и прочитать добавленные значения через цикл Для, но здесь уже мы будем использовать доступ через квадратные скобки (индекс) и счетчик будем начинать не с единицы а с нуля, так как нумерация ячеек в массиве идет с нуля.

Небольшое отступление. Кому-то покажется странным запись вида Массив.Количество(). Здесь используется оператор точки. Помните когда мы учили приоритеты операций самый высокий был у точки и у фигурных скобок? Так вот точка это оператор доступа к данным некоего объекта, в нашем случае массива, у примитивных типов такого нет. Через точку мы как бы обращаемся к инструментам объекта или к хранящимся в нем данным.

Здесь мы через цикл для считываем последовательно данные массива, в качестве ограничения у нас выражение Массив.Количество() - 1, почему отнимаем единицу? Например у нас в массиве 10 значений, метод количество значит вернет число 10. То есть на последнем шаге цикла в значении счетчика у нас будет 10. Далее мы считываем это значение через Массив[Счетчик], что равносильно Массив[10], а мы помним что индекс начальной ячейки 0 и не трудно догадаться что индекс последней ячейки будет 9 и мы пытаемся прочитать значение из несуществующей ячейки. Поэтому мы получим ошибку на последнем шаге цикла если не отнимем единицу.

И тут мы можем рассмотреть еще одну вариацию цикла Для, предназначенную для обхода коллекций - Для Каждого. Здесь мы просто без указания индекса можем перебрать все элементы коллекции.

Гораздо проще да? Не надо ничего отнимать и обращаться по индексу, очень популярный цикл.

Ну и напоследок темы циклов рассмотрим цикл Пока. С помощью него удобно сделать бесконечный цикл прерываемый только при наступлении какого-то события. Либо выполнять какие-то действия пока результат проверки равен истине

Здесь у нас новый оператор не равно <> часто используют его но для наглядности можно использовать конструкцию НЕ Счетчик = 0, а так же здесь показан способ уменьшения значения переменной, можно аналогично увеличивать значение только используя знак плюс.

Для тру программистов конструкций инкремента и декремента (++, --) а так же конструкций += и -= в 1с нету. Грустно, знаю.

Для тру программистов конструкций инкремента и декремента (++, --) а так же конструкций += и -= в 1с нету. Грустно, знаю.

Еще небольшое отступление, возможно у кого-то возникнет вопрос а почему мы через знак равно который служит для присваивания значения переменной проверяем равенство? Ну вот привыкайте, присваивание и равенство пишутся одинаково, и когда встретите такую конструкцию - Результат = Число1 = Число2 - знайте что в результат присвоится булево, в зависимости от того равно Число1 Числу2 (Истина) или нет (Ложь);

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

В первом цикле мы прерываем цикл по достижении значения счетчика 5. Во втором шаге мы пропускаем все шаги где остаток от деления на 2 значения счетчика не равен 0 ( то есть это нечетное число).

Далее нас ждет немного более сложная для понимания тема процедур и функций поэтому вынесу ее в отдельный пост. А после нее уже перейдем к изучению конфигуратора (конфигурирование) и расширения знаний о синтаксисе языка уже в конфигураторе.

Показать полностью 11
67

1С Без Воды. Синтаксис и немного про контекст

Серия 1С Без Воды

Ну вы даете конечно, такой реакции я не ожидал. Но хватит эмоций сегодня наконец-то приступим к синтаксису языка. Код будем писать в консоли кода и да меня тут уже упрекали про наличие воды не смотря на такое громкое название, но поверьте некоторые вещи надо объяснять ибо совсем без воды и без объяснений это родная справка 1с. Мы немного поговорим про контекст, в консоли кода вы можете видеть такие 2 кнопки

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

Переменные, присваивание и примитивные типы данных.

Переменная - по классике переменную сравнивают с некой коробкой куда кладутся нужные вещи (данные) и подписывается (дается название переменной). В 1с эта операция выглядит так (далее все скрины будут из консоли кода).

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

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

Но мы тут еще упомянули присваивание. Это значок =. Слева от равно у нас имя переменной а справа значение которое мы хотим присвоить переменной. В нашем примере значение это число. Оно относится к примитивному типу. Вот какие еще есть примитивные типы в 1С - Число, Строка, Дата, Булево, Неопределено. Есть еще и другие типы но о них мы поговорим чуточку позже (NULL, Тип - ага знаю звучит как тафталогия тип Тип, но позже мы разберем что это значит). Давайте создадим и покажем (Сообщить()) отдельные переменные для наших типов.

Друзья тут у меня к вам вопрос, возможно далее весь код не будет умещаться на один скрин и надо будет скринить отдельно код и отдельно результат его вывода. Вам удобнее один цельный скрин или можно скринить по отдельности код и его результат выполнения?

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

Выражения, операции.

Давайте на примере выражения с операцией сложения рассмотрим что такое выражение и операция.

Внезапно новое слово операнды. Итак - выражение объединяет в себе одну или несколько операций над операндами. У операции так же может быть один или два операнда (например операция унарный минус это просто обозначение отрицательного числа, например -1). Выражение соответственно может быть сложнее и объединять несколько операций.

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

Арифметические операции

Ну тут прям школа школа.

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

Операции конкатенации

Мудреным словом конкатенация обозначается присоединение "одной" строки к "другой" - "одной" + "другой" = "однойдругой", с помощью операции сложения.

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

Логические операции

Результатом работы логических операций является тип Булево - Истина или Ложь. Это различные операции сравнения.

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

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

В логические операции думаю можно так же включить и так называемые булевы операции - И, ИЛИ, НЕ.

Приоритеты операций

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

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

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

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

P.S. Мы тут рассмотрели по сути только примитивные типы, операции выражения и приоритеты. Может быть вам этого мало в рамках одной статьи и нужно как-то более укрупненно писать? Напишите свое мнение, а может быть наоборот надо дробить на более мелкие статьи, я на данный момент пишу по наитию, так как мне хочется подать вам информацию.

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

Показать полностью 13
177

1С Без Воды. Настройка окружения

Серия 1С Без Воды

Вижу что предыдущая статья по 1С имеет отклик поэтому продолжаем.

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

Мы скачаем специальное расширение написанное и поддерживаемое очень хорошими людьми, расширение называется просто - Универсальные инструменты 1С для управляемых форм. Ну ок, может не совсем просто но главное для нас то что это мегаполезный набор инструментов для разработчиков, администраторов и просто продвинутых пользователей 1С. На этапе изучения синтаксиса языка нам из этого набора нужен будет такой инструмент как - Консоль кода. Еще один из самых популярных инструментов это Консоль запросов, ей мы воспользуемся немного позже. Приступим к скачиванию и установке. Переходим по ссылке. Листаем до раздела Assets и качаем там по ссылочке UI_nossl.cfe

Расширение файла cf это выгруженная конфигурация, а cfe это расширение конфигурации. Более подробно о конфигураторе, конфигурациях и расширениях так же в дальнейших материалах.

Далее нам нужно это расширение добавить в нашу конфигурацию. Открываем конфигуратор и идем в раздел меню - Конфигурация -> Расширения конфигурации.

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

Жмем ок и двойным кликом открываем наше расширение.

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

Идем в меню Действие -> Конфигурация -> Загрузить конфигурацию из файла и выбираем ранее скачанный файл. На всплывающем предупреждении жмем Да.

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

В окне со списком расширений конфигурации снимем у нашего расширения галочки - Безопасный режим и Защита от опасных действий.

Теперь если мы запустим режим предприятия через F5 мы можем полюбоваться на раздел - Инструменты.

Очень удобно все расположено и все понятно, правда? Нет... Давайте на будущее немного поднастроим расположение панелей в режиме предприятия.

Зайдем в раздел Настройки - > Настройки панелей

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

Жмем ок и открываем Инструменты. Видим нашу консоль кода, запускаем ее.

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

Как от этого избавиться? Нам нужно добавить пользователя информационной базы. Давайте вернемся в конфигуратор и сделаем это. Но прежде чем добавить пользователя надо затронуть такой небольшой момент как роли (ну как небольшой, тема для отдельного курса). На данном этапе мы можем представить роли для себя просто как набор прав доступа для объектов по аналогии прав доступа в файловой системе - чтение, запись, удаление и прочее. Так вот у пользователя должна быть назначена какая-либо роль, если пользователь в системе один то роль должна обладать полными правами. Давайте добавим такую роль и добавим пользователя. Здесь мы уже идем в конфигураторе в раздел слева - Дерево метаданных. Открываем раздел Общие -> Роли и жмем правой кнопкой Добавить или Insert (insert удобнее).

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

Далее перед тем как добавить пользователя нужно применить изменения (что это значит так же в дальнейших постах будет) нажимаем на такой вот синенький бочонок либо же на клавишу F7. На сообщения о прекращении отладки и реорганизации информации отвечаем утвердительно. (да, принять).

Далее добавляем пользователя. Главное меню Администрирование -> Пользователи.

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

Переходим на вкладку прочие и указываем роли Полные права и Универсальные инструменты. Роль полные права у нас действует в основной конфигурации а роль Универсальные инструменты только в расширении (подробнее, ну вы поняли...)

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

Запускаем из конфигуратора режим предприятия (F5) и открываем консоль кода. И можно сразу добавить ее в избранное чтобы запускать по одному клику.

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

Показать полностью 24
816

1С Без Воды. Введение

Серия 1С Без Воды

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

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

Платформа, конфигуратор, конфигурации.

Что из себя представляет сама по себе программа 1с? ( как ее только не называют, бухгалтеры восьмеркой, программой, разрабы платформой) Это программный продукт от фирмы 1с который называется 1С Предприятие, либо же Технологическая платформа 8.3. 8.3 это версия сейчас наиболее распространенная, недавнее время назад вышла еще новая версия 8.5 но мы ее пока затрагивать не будем (возможно сделаю пост об отличиях, но если есть навыки в 8.3 то 8.5 глобальных отличий не имеет). Эта самая технологическая платформа или для краткости просто платформа позволяет с помощью конфигуратора создавать конфигурации. Что такое конфигуратор и конфигурации? Проведем аналогию конфигуратор это редактор конфигураций, то есть это основной инструмент для разработки, например аналогом конфигуратору может служить какой-нибудь офисный редактор типа Word, или среда разработки другого языка программирования. А файл созданный в Word это уже будет неким аналогом нашей разрабатываемой конфигурации. Так вот конфигурация это наше разрабатываемое прикладное решение. Есть конфигурации которые пишет сама фирма 1с, самая популярная из них это 1С Бухгалтерия, такие конфигурации называются типовыми. Итак мы выяснили чтобы разрабатывать в 1с нам нужно установить технологическую платформу, запустить конфигуратор и создать свою конфигурацию.

Кратко про лицензию, необходимая регистрация, скачиваем платформу.

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

Для начала нужно зарегистрироваться на этом сайте

Жмем - Войти

Жмем - Войти

Жмем - Нет логина?

Жмем - Нет логина?

Заполняем все поля, не забываем про галочку согласия с условиями

Заполняем все поля, не забываем про галочку согласия с условиями

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

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

Далее сохранить и можем заходить в личный кабинет еще раз по кнопке войти.

Так выглядит начальная страница, жмем на вкладку Продукты и выбираем 1С предприятие.

Так выглядит начальная страница, жмем на вкладку Продукты и выбираем 1С предприятие.

И здесь будет раздел - Комьюнити-лицензии, это то что нам нужно. У вас список будет пустой.

И здесь будет раздел - Комьюнити-лицензии, это то что нам нужно. У вас список будет пустой.

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

После активации лицензии мы можем наконец то прямо тут же скачать и саму платформу.

Для наших целей качаем версию 8.3.27.2130. Если вы продвинутый линуксоид или маковод то выбираем соответствующий раздел в меню слева.

Для наших целей качаем версию 8.3.27.2130. Если вы продвинутый линуксоид или маковод то выбираем соответствующий раздел в меню слева.

Установка платформы, активация лицензии на платформе.

Приступаем к установке платформы, каких-то особых нюансов здесь нет в основном жмем Далее и все. Распаковываем архив в любую удобную папку. Ищем там файл setup.exe и запускаем.

На экране установки жмем далее и в конце установки видим на рабочем столе ярлык 1С.

На экране установки жмем далее и в конце установки видим на рабочем столе ярлык 1С.

Осталось только указать установленной платформе что у нас есть лицензия разработчика. Запускаем ярлык и на этом этапе либо же на этапе создания информационной базы (чуть ниже будет описание) натыкаемся на такое окно

Жмем Активировать компьюнити-лицензию и вводим там наши логин и пароль когда мы регистрировались на сайте <!--noindex--><a href="https://pikabu.ru/story/1s_bez_vodyi_vvedenie_14002408?u=https%3A%2F%2Fdeveloper.1c.ru%2F&t=https%3A%2F%2Fdeveloper.1c.ru%2F&h=99256e9aacdae450f047fb1d4e9c4b7cf1500b74" title="https://developer.1c.ru/" target="_blank" rel="nofollow noopener">https://developer.1c.ru/</a><!--/noindex-->. После этого лицензия уже должна будет заработать.

Жмем Активировать компьюнити-лицензию и вводим там наши логин и пароль когда мы регистрировались на сайте https://developer.1c.ru/. После этого лицензия уже должна будет заработать.

Итак мы готовы к созданию нашей первой информационной базы.

Информационная база, режимы запуска.

Что такое информационная база? Если по простому информационная база это совокупность структуры нашего приложения (конфигурации, помните?) и пользовательских данных полученных при работе пользователей нашего приложения. То есть у нас есть наше приложение конфигурация - каркас, схема того как должны записываться данные и сами пользовательские данные. Исходя из этого если вы запустите ярлык то увидите такое окошко (размытый элемент это список баз у вас он будет изначально пустой) и здесь 2 главные кнопки - 1С Предприятие и Конфигуратор.

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

Но преждем чем что-то запускать надо конечно же сначала добавить информационную базу. Для этого нам уже нужны кнопки ниже. Жмем Добавить.

У нас будет новая база по этому здесь все оставляем по умолчанию.

У нас будет новая база по этому здесь все оставляем по умолчанию.

Нас сейчас интересует только первый пункт ( остальные пункты нужны для работы с уже созданной базой и для создания папки чисто для визуальной группировки списка баз).

Про шаблоны пока можно не задумываться выбираем нижний пункт.

Про шаблоны пока можно не задумываться выбираем нижний пункт.

Шаблоны баз по простому говоря в основном служат для первой установки типовой конфигурации 1с. Выбираем нижний пункт.

Указываем любое наименование.

Указываем любое наименование.

Называем нашу базу например "Учебная база". Тип Расположения это место где будет хранится наша база, тут оставляем на данном компьютере.

Выбираем путь к базе или оставляем по умолчанию.

Выбираем путь к базе или оставляем по умолчанию.

Здесь я рекомендую завести отдельную папку для баз. Каждая база это набор файлов поэтому каждую базу надо так же добавлять в свою папку. И для одной базы путь может быть примерно такой - D:\Базы1С\УчебнаяБаза

Здесь так же оставляем все как есть.

Здесь так же оставляем все как есть.

Жмем готово, ждем немножко и наша база появится в списке информационных баз. Ура, мы можем запускать конфигуратор. Запускаем.

Красота? Если выскочит окошко Лицензия не обнаружена то активируем комьюнити-лицензию по описанию выше.

Красота? Если выскочит окошко Лицензия не обнаружена то активируем комьюнити-лицензию по описанию выше.

Поздравляю у нас все готово для того чтобы приступить к разработке.

И к финалу этого поста давайте преодолеем боязнь пустого холста и что-то сделаем. Так сказать "hello world" по 1сному. Но вывести обычный текст я считаю немного скучным и мы сделаем немного по другому. Мы создадим свою внешнюю обработку и запустим ее в режиме 1С Предприятие. Внешняя обработка по простому это такое мини приложение 1с только в виде внешнего файла который можно открыть в предприятии и запустить его.

Внешняя обработка.

Жмем Файл - Новый. Или сочетание клавиш Ctrl+N. Рекомендую привыкать к горячим клавишам сразу.

Выбираем - Внешняя обработка.

Называем ее как-нибудь

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

И сразу - Готово.

И сразу - Готово.

Открывается редактор формы. Кратко что у нас есть за разделы.

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

Здесь можно добавить реквизит 3 способам, 3й вариант это кнопка клавиатуры Insert.

Называть реквизиты, имена переменных и других объектов 1с нужно по специальным правилам.

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

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

Замечаем что в разделе снизу он тоже отобразился в том виде в каком будет виден пользователю.

Замечаем что в разделе снизу он тоже отобразился в том виде в каком будет виден пользователю.

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

Способы добавить команду такие же как у реквизитов, через кнопку плюсик через правую кнопку мыши или через Insert. Добавляем и называем нашу команду.

Далее так же как с реквизитами нам надо ее отобразить на форме, так же перетягиваем в раздел слева (можно кстати в раздел снизу где у нас предпросмотр формы).

А теперь нам нужно объяснить форме какие действия надо выполнять при нажатии кнопки. Мы хотим при нажатии кнопки видеть сообщение с нашим текстом введенным в нашу строку. Для того чтобы форме сказать что для конкретной кнопки мне надо выполнить код нашей команде надо указать такое свойство как Действие. Сделать это можно так же разными способами, можно выделить команду в разделе справа вверху и в панели свойств нажать на значок лупы.

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

Код в 1с редактируется не в одном каком-то файле или наборе файлов, код редактируется в модулях объектов, наша форма сейчас такой объект и у нее есть свой модуль вот в нем и будем писать код. Модули есть различные в дальнейшем мы с ними и с объектами 1с познакомимся.

Мы видим процедуру, про процедуры будет более подробный разбор во время постов про синтаксис языка 1с, а сейчас представьте себе процедуру как некий блок кода, алгоритм который имеет входные параметры и результат своей работы, этому алгоритму мы задаем имя, в нашем случае имя процедуры НашаКоманда.

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

Наша мини обработка готова осталось ее сохранить и запустить.

Сохраняем (сочетание клавиш Ctrl+S), имя файла подставляется автоматически такое же каким мы назвали нашу обработку при создании.

Сохраняем (сочетание клавиш Ctrl+S), имя файла подставляется автоматически такое же каким мы назвали нашу обработку при создании.

Для того чтобы из конфигуратора запустить режим предприятия (пользовательский) можно нажать клавишу F5, либо кнопку на панели.

Наша база пустая поэтому наблюдаем такое пустое окно. В нем нам нужно открыть нашу обработку. Сочетание клавиш Ctrl+O либо через меню представленное на скрине.

Соглашаемся с предупреждением безопасности нажав Да.

И видим форму нашей обработки. Ну и вводим какой-либо текст и жмем на нашу команду. И наблюдаем внизу строку сообщения с введенным нами текстом.

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

Показать полностью 38
17

Ответ на пост «Про неудобные наклейки на жестяных баночках»6

Вставлю свои 5 копеек, ибо этим честным знаком занимался на производстве кваса. Отследить весь путь вряд ли, только производителя, цепочку продаж от производителя до дистрибьюторов и до магазина вы не увидите. Спайка называется упаковкой, для упаковок есть такой термин как агрегация - производство у которого есть агрегация лепит дополнительный код на саму упаковку где есть привязка ко всем кодам к упаковке и таким образом дистрибьютор или магазин принимает товар сканируя код агрегации, кодов таких может быть несколько уровней - 0 уровень это код на одной штуке товара, 1 уровень это групповая упаковка (спайка), 2 уровень это палета ну и так далее. Про нанесение марок на верх крышки чисто технический момент, алюминиевая банка на лини розлива составляется из крышки и скажем так основного тела, стакана, если клеить на боковушку то клеить надо будет уже в наполненную емкость а так как температура продукта низкая то там будет испарина и наклейка просто на просто испортится или отклеится (зависит от материала этикетки). Да есть лазерные принтеры которые делают гравировку datamatrix кода, но тут мы сталкиваемся с тем что так сложнее производителям исправлять косяки производства, ну и да оборудование дороже, уже не переклеишь этикетки и банка испорчена неправильным кодом маркировки. Что касается розницы для различных категорий товара постепенно вводится так называемый разрешительный режим - это проверка кода в честном знаке при продаже, касса отправляет в честный знак код маркировки и в зависимости от ответа ЧЗ разрешает или запрещает продажу, это обходится розницей либо да сканированием левого кода либо временным переключением в учетной системе типа товара на немаркированный. Ну и к примеру стоимость внедрения маркировки на небольшом заводе может составлять по нынешним ценам от 10млн, это оборудование и программное обеспечение, причем это не значит что купил и забыл, нет, есть куча косяков. Вкратце как-то так.

Показать полностью

Мысли земли

В начале была пустота. Нет. Не так. В начале было ничего... Потом возникла пустота. Но пустоте было скучно быть пустотой. Прошло бесконечное количество времени, и пустота устала быть пустотой. Она... взорвалась. Взорвалась материей, пространством, временем, светом.

Материя, пространство, свет и прочие энергии образовали вселенную.

И в закоулках вселенной образовалась маленькая планета – Земля. Земля после своего рождения пережила очень долгий период трансформации… осознания себя. Земле было скучно, и она думала…

Думала над как появилась, откуда, для чего. Она очень много думала. И ее мысли отражались на ней же самой.

В какой-то момент времени она осознала, что ее мыслительный процесс приводит к удивительному результату. В процессе ее мышления каким-то образом на ее поверхности начали образовываться неведомые ей соединения молекул. Земля еще не понимала и не осознавала какой процесс она запустила. Но эти соединения молекул… хотели жить. И они жили, они развивались, они боролись друг с другом.

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

Земля обрела разум… Ее мысли воплотились в мыслях жизни, зародившейся на ней.

Шли годы, тысячелетия, сотни тысяч лет. И разум земли в виде жизни на ней решил, что он… Он главный. Он самый умный на земле, он уникальный и он достоин… Достоин лучшего, а сама земля — это так, просто стартовая площадка для жизни.

Земля смотрела на это и не верила этому. Она, которая родилась в пламени взрыва вселенной. Она, которая пережила то, что и не снилось так называемому «разуму» родившейся на ней. Она просто не могла поверить, что ее мысли превратились в это…

Она могла бы стряхнуть это наваждение, этих… «царей природ» со своей поверхности буквально в одно мгновение.

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

Ее забавляло то, как зародившееся на ней жизнь, особенно отдельная часть жизни, называвшая себя – разумной строила планы, называла себя царями…, и она позволяла этим «царям» извлекать из себя то, что им было нужно. Ну… они так думали, что им это нужно.

Но земля помнила, как за время ее жизни на других «землях» тоже зарождались жизни и как они уходили… Как на ее поверхности тоже зарождались жизни и как они уходили. В ней боролись чувства грусти и злорадства. Она и любила эту жизнь, которая родилась из ее мыслей и в то же время ненавидела ее.

Она понимала, что вся эта жизнь, это ее дети. Где-то неблагодарные, где-то любящие. Огромное семейство, рожденное от ее мысли. Каждая ее мысль, желание, чувства отражались на этой «разумной» жизни. Эта жизнь думала, что она уникальная и все чего она достигла это благодаря только «своему» разуму. Но земля смотрела на это, вздыхала континентами и продолжала наблюдать…

Каждый человек смертен. Но и земля тоже смертна.

Каждый человек боится смерти, но и земля так же этого боится.

Все мы всего лишь нейроны в неокортексе земли, самый молодой слой мозга земли, который думает, что он… что-то осознает…

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества