Сейчас программа 1С существует в разных версиях и обличьях, люди работают в «семерке» т.е. в 1С 7.7 и в «восьмерке» которые бывают 8.0, 8.1, 8.2 и 8.3. На практике, на текущий момент 99.9% пользователей программы 1С работают в 7.7, 8.2, и 8.3 , чем же они отличаются?

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

Программа 1С состоит из платформы 1С и баз 1С, т.е. платформа 1С это программа которая запускает базы 1С.

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

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

Все эти конфигурации могут создаваться для работы в 1С 7.7 или 8.2 или 8.3 в чем же отличия и зачем тут написано про конфигурации если 8.2 и 8.3 и даже 7.7 это платформы? Сейчас разберемся.

Каждая платформа имеет в себе разные возможности для создания конфигураций, и чем выше версия платформы, тем больше у этой платформы функционала и возможностей.
Если нам нужна база 1С с конфигурацией скажем «Бухгалтерия предприятия», с версией релиза например «3.0.60.44» и мы попытаемся найти о ней информацию, то мы выясним что для работы этой конфигурации и этого релиза на потребуется платформа не ниже чем 8.3, более того не ниже чем 8.3.10.2466, это значит платформа 8.2 нам уже не подойдет!

Конфигураций для платформы 1С 8.* и существует много но их можно разделить на 2 подвида это конфигурации (1) c «обычными формами», и (2) c «управляемыми формами»
«Обычные» — значит такие же как и были раньше, например похожие на 1С 7.7, а «Управляемые» это более современные формы, более красивые, которыми легче управлять при их создании.

Как понять в моей базе 1С формы обычные или управляемые?

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

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

Ранее, когда еще не было платформы 8.3 а была только 8.2 и обычные формы, тогда только начали разрабатываться конфигурации на управляемых формах, появилась платформа 8.3 и у чуть позже у многих людей платформа 8.3 начала ассоциироваться с управляемыми формами, а уже платформа 8.2 с обычными. Так и укрепилось понятие, что у кого-то 1С 8.2 (т.е. база 1С с конфигурацией на обычных формах) , а у кого-то 1С 8.3 (т.е. база 1С с конфигурацией на управляемых формах).
На самом деле платформа 8.3 новее чем 8.2 а значит может работать со всеми конфигурациями для 1С 8.*, НО! Если у вас платформа 8.3, а база с конфигурацией на обычных формах, то про вас могут сказать что у вас 1С 8.2 и это важно понимать!

Также важно понимать что у вас может быть платформа 8.2 а конфигурация на управляемых формах, то про вас могут сказать что у вас 1С 8.3! Многим так быстрее, удобнее и привычнее.
Т.е. большинству без разницы какая у них платформа и если у них база с обычными формами — то это 1С 8.2! если с управляемыми — то 8.3!

Исходя из данного факта и устоявшегося мнения в терминах, на нашем сайте вы можете встретить обработки 8.2 или 8.3 это не означает что для обработки важно какая у вас платформа, это означает что она, обработка, будет работать либо в базе с обычными формами либо только с управляемыми , а бывают еще универсальные обработки у них в названии будет написано (8.2 и 8.3) или (8.2/8.3) или (8.2-8.3) или (8.*)

Ниже примеры некоторых популярных конфигураций 1С на обычных формах т.е. называют 1С 8.2:
— Бухгалтерия предприятием 2.0.*.*
— Управление торговлей 10.3.*.*
— Розница 1.1.*.*
— Зарплата и управление персоналом 2.5.*.*

Теперь примеры некоторых популярных конфигураций 1С на управляемых формах т.е. такие называют 1С 8.3:
— Бухгалтерия предприятием 3.0.*.*
— Управление торговлей 11.*.*.*
— Розница 2.*.*.*
— Зарплата и управление персоналом 3.*.*.*
— Управление нашей фирмой 1.6.*.*

Краткая версия всей статьи или ответ на вопрос: какая у меня 1С 8.2 или 8.3?

Если у вас в базе 1С после того как вы ее откроете в верху есть строка из «менюшек» с названиями к примеру «Файл», «Правка», или «Операции», «Сервис», «Окна», «Справка», и при нажатии вниз «выпадет» подменю с выбором подпунктов, то такую базу называют 1С 8.2 и для нее могут подойти только те обработки, отчеты, расширения, в названиях которых есть «8.2» и не подойдут те обработки, в названии которых есть «8.3»

Если нет такой строки из «менюшек», а есть ссылки, при наведении на которых эти ссылки сразу подчеркиваются, они могут иметь названия Главное» или «Руководителю» или «Продажи», «Закупки», «Администрирование» или «НСИ и администрирование» или другие подобные ссылки или даже картинки. значит — это база 1С 8.3 и для нее могут подойти только те обработки, отчеты, расширения, в названиях которых есть «8.3» и не подойдут те обработки в названии которых есть «8.2»

Исключение это универсальные обработки, отчеты в названиях которых есть и 8.2 и 8.3 т.е. в названии будет написано (8.2 и 8.3) или (8.2/8.3) или (8.2-8.3) или (8.*)

Число в 1С 8 — значение примитивного типа Число . Числовым типом может быть представлено любое десятичное число. С числовыми данными возможно совершать основные арифметические операции: сложение, вычитание, умножение и деление. Максимальное количество разрядов для числа в 1с 8: 38 знаков.

Литералы числа: набор цифр вида: [+|-]{0|1|2|3|4|5|6|7|8|9}[.{0|1|2|3|4|5|6|7|8|9}] В качестве разделителя целой и дробной части используется «.» (точка).

Пример 1. Создадим числовую переменную

ЧислоПи = 3.14;

Преобразование значений другого типа в число

Преобразовать в число можно значения строкового типа, либо логического типа (Булево ). Значение типа Булево преобразуется в число по следующим правилам:

  • Ложь преобразуется в 0;
  • Истина преобразуется в 1.

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

Для преобразования существует специальная функция Число(<Значение>) , которая возвращает полученное число, если преобразование удалось и выдает сообщение об ошибке в противном случае.

Пример 2. Преобразовать в 1с число строку «1.25»

Строка = "1.25"; ПолученноеЧисло = Число(Строка);

После выполнения данного кода в переменной ПолученноеЧисло будет содержаться числовое значение 1.25

Пример 3. Преобразовать в число строку «Привет мир!»

Строка = "Привет мир!"; ПолученноеЧисло = Число(Строка);

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

Функции работы со значениями типа Число в 1с 8.3

В данном разделе будут рассмотрены основные функции работы с числами в 1с 8 и приведены примеры их использования.

Цел

Цел(<Число>) . Возвращает целую часть числа переданного в параметре.

Пример 4. Определить делится ли число 121 на 11.

Делимое = 121; Делитель = 11; Результат = Делимое / Делитель; Если Цел(Результат) = Результат Тогда Сообщить("Делится нацело"); Иначе Сообщить("Не делится нацело"); КонецЕсли;

Результатом выполнения данного кода будет вывод на экран сообщения «Делится нацело».

Окр

Окр(<Число>, <Разрядность>, <РежимОкругления> ). Функция округляет число, переданное в первом параметре, до знака после запятой переданного во втором параметре. Значение разрядности может быть и нулевым (округление до целого) и отрицательным (округление до соответствующего разряда целой части). Параметр РежимОкругления может принимать значения:

  • 0 (или РежимОкругления.Окр15как10) . Округляет в меньшую сторону, то есть при округлении 1.5 будет возвращено 1;
  • 1 (или РежимОкругления.Окр15как20) . Округляет в большую сторону, то есть при округлении 1.5 будет возвращено 2;

Пример 5. Для того чтобы лучше разобраться с принципами округления рассмотрим округление до целого в меньшую и большую стороны, на ряде чисел от 1.1 до 1.9

Массив = Новый Массив; Шаг = 0.1; Число = 1; Пока Число < 1.9 Цикл Число = Число + Шаг; Массив.Добавить(Число); КонецЦикла; Для Каждого Стр Из Массив Цикл Сообщить("Исходное: "+Стр+" В меньшую: "+Окр(Стр,0,0)+" В большую:"+Окр(Стр,0,1)); КонецЦикла;

Pow

Pow(<Основание>, <Показатель>) . Возводит число переданное в первом параметре в степень переданную во втором параметре.

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

Число = 144; КвКорень = Pow(Число, 1/2); Число = Pow(КвКорень, 2); Сообщить(Число);

Результатом исполнения кода будет вывод на экран числа 144.

Прочие функции работы со значениями типа Число в 1с 8.3

  • Log(<Число>) . Получает натуральный логарифм числа, переданного в параметре;
  • Log10(<Число>) . Получает десятичный логарифм числа, переданного в параметре;
  • Sin(<Угол>) . Получает синус угла, заданного в радианах. Угол передается в параметр;
  • Cos(<Угол>) . Получает косинус угла;
  • Tan(<Угол>) . Получает тангенс угла;
  • ASin(<Угол>) . Получает арксинус угла;
  • ACos(<Угол>) . Получает арккосинус угла;
  • ATan(<Угол>) . Получает арктангенс угла;
  • Exp(<Число>). Получает экспоненту от числа переданного в параметр.



Полный синтаксис (нажмите, чтобы раскрыть)

Условный оператор "Если"

Описание:

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

Синтаксис:

Параметры:

Если Ключевое слово, которое начинает структуру оператора условного выполнения. <Логическое выражение> Логическое выражение . Тогда Операторы, следующие за Тогда выполняются, если результатом логического выражения является значение Истина . // Операторы Исполняемый оператор или последовательность таких операторов. ИначеЕсли Логическое выражение, следующее за ключевым словом ИначеЕсли , вычисляется только тогда, когда условия в Если и всех предшествующих ИначеЕсли оказались равны Ложь . Операторы, следующие за конструкцией ИначеЕсли - Тогда , выполняются, если результат логического выражения в данном ИначеЕсли равен Истина . Иначе Операторы, следующие за ключевым словом Иначе , выполняются, если результаты логических выражений в конструкции Если и всех предшествующих конструкциях ИначеЕсли оказались равны Ложь . КонецЕсли Ключевое слово, которое завершает структуру оператора условного выполнения.

Тернарный условный оператор

Описание:

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

Синтаксис:

? (< Логическое выражение> , < Выражение 1 > , < Выражение 2 > )

Параметры:

Возвращаемое значение:

Результат вычисления одного из результирующих выражений.

&НаКлиенте Процедура ВыполнитьКод(Команда) /// Как составить оператор Если в 1с 8.3, 8.2 Если 1 > 0 Тогда // Истина // блок операторов Сообщить("Компьютер выполнит все команды из этого блока." ) ; Сообщить("Один больше нуля." ) ; КонецЕсли ; Если 1 < 0 Тогда // Ложь Сообщить("Один меньше нуля." ) ; Иначе Сообщить("Сработает именно эта ветка условного оператора (#А)." ) ; Сообщить("Один больше нуля." ) ; КонецЕсли ; Если 1 < 0 Тогда // Ложь Сообщить("Один меньше нуля." ) ; ИначеЕсли 1 = 0 Тогда // Ложь Сообщить("Один равен нулю." ) ; Иначе Сообщить("Сработает именно эта ветка условного оператора (#Б)." ) ; Сообщить("Один больше нуля." ) ; КонецЕсли ; /// Как составить тернарный оператор? в 1с 8.3, 8.2 Текст = ? (1 > 2 , "Один больше двух." , "Один не больше двух." ) ; Сообщить(Текст) ; // выведет "Один не больше двух." КонецПроцедуры /// Скачать и выполнить эти примеры на компьютере

К полям запроса можно применять различные функции. В этом разделе я рассмотрю наиболее часто применяемые (лично мною) из них.

ДАТАВРЕМЯ - задает константное поле с типом Дата. Синтаксис:

ДАТАВРЕМЯ(<Год>,<Месяц>,<День>,<Час>,<Минута>,<Секунда>)
Запрос.Текст =
"ВЫБРАТЬ
| ДАТАВРЕМЯ(2013, 1, 1) КАК ОМГ";//1 января 2013

РАЗНОСТЬДАТ - возвращает разность 2-х дат в указанном измерении (год, месяц, день, час, минута, секунда). Синтаксис:

РАЗНОСТЬДАТ(<Дата1>, <Дата2>, <Тип>)
Запрос.Текст =
"ВЫБРАТЬ
| РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2013, 2, 28), ДАТАВРЕМЯ(2013, 1, 1), ДЕНЬ)
| КАК ДнейДоКонцаЗимы";

ЗНАЧЕНИЕ - задает константное поле с предопределенной записью одной из таблиц БД, также можно передать пустую ссылку. Синтаксис:

ЗНАЧЕНИЕ(<Имя>)
Запрос.Текст =
"ВЫБРАТЬ
//предопределенный элемент справочника
| ЗНАЧЕНИЕ(Справочник.Валюты.Рубли) КАК Рубль,
//пустая ссылка на документ
| ЗНАЧЕНИЕ(Документ.СчетНаОплатуПокупателю.ПустаяСсылка) КАК ПустойСчет,
//значение перечисления
| ЗНАЧЕНИЕ(Перечисление.ПолФизическихЛиц.Мужской) КАК Мужчина,
//предопределенный счет из плана счетов
| ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары) КАК Счет_41";

ВЫБОР - аналог конструкции ЕСЛИ для языка запросов 1С. Синтаксис:

ВЫБОР
КОГДА <Выражение> ТОГДА <Выражение>
ИНАЧЕ <Выражение>
КОНЕЦ
Запрос.Текст =
"ВЫБРАТЬ
//если цена меньше 100, то запрос все равно вернет 100
//в противном случае запрос вернет реальную цену
| ВЫБОР
| КОГДА Товары.Цена > 100
| ТОГДА Товары.Цена
| ИНАЧЕ 100
| КОНЕЦ КАК Цена
|ИЗ

ССЫЛКА <Имя таблицы>
Запрос.Текст =
"ВЫБРАТЬ
//если тип значения регистратора документ Приходная,
//тогда запрос вернет "Поступление товаров", иначе "Реализация товаров"
| ВЫБОР
| КОГДА Остатки.Регистратор ССЫЛКА Документ.Приходная
| ТОГДА ""Поступление товаров""
| ИНАЧЕ ""Реализация товаров""
| КОНЕЦ КАК ВидДвижения
|ИЗ
| РегистрНакопления.Остатки КАК Остатки";

МЕЖДУ - проверяет значение на вхождение в диапозон. Синтаксис:

МЕЖДУ <Выражение> И <Выражение>
Запрос.Текст =
//получим все товары в диапазоне цен от 100 до 1000
"ВЫБРАТЬ
| Товары.Товар
|ИЗ
|ГДЕ
| Товары.Цена МЕЖДУ 100 И 1000";

В и В ИЕРАРХИИ - проверяют наличие значения в передаваемом списке. В ИЕРАРХИИ также развернет иерархические элементы вниз и поищет значение среди подчиненных элементов. Синтаксис:

В(<СписокЗначений>), В ИЕРАРХИИ(<СписокЗначений>)
Запрос.Текст =
//получим все субсчета 41-го и 10-го счета
"ВЫБРАТЬ
| Хозрасчетный.Ссылка КАК Счет
|ИЗ
| ПланСчетов.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.Ссылка В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары),
| ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Материалы))";

ПОДОБНО - позволяет сравнивать строку с шаблоном, используется когда строка поиска жестко не определена. Построение шаблона:

  • % (процент): последовательность, содержащая любое количество произвольных символов
  • _ (подчеркивание): один произвольный символ
  • [...] (в квадратных скобках один или несколько символов): любой одиночный символ из перечисленных внутри квадратных скобок. В перечислении могут задаваться диапазоны, например a-z, означающие произвольный символ, входящий в диапазон, включая концы диапазона
  • [^...] (в квадратных скобках значок отрицания, за которым следует один или несколько символов): любой одиночный символ, кроме тех, которые перечислены следом за значком отрицания

Синтаксис:

ПОДОБНО "<ТекстШаблона>"
Запрос.Текст =
//найдем все стулья в справочнике номенклатура
"ВЫБРАТЬ
| Товары.Товар
|ИЗ
| Справочник.Товары КАК Товары
|ГДЕ
| Товары.Наименование ПОДОБНО ""тул%""";
//этот запрос вернет Стул, стул, стульчик, стул офисный и т.д.,
//но стол в этом списке не окажется

ЕСТЬNULL - если поле не определено, то определяет его в указанное выражение. Синтаксис:

ЕСТЬNULL(<Выражение>, <Выражение>)
Запрос.Текст =
//Если поле не определено (NULL)? то присвоим ему пустую ссылку
"ВЫБРАТЬ
| ЕСТЬNULL(Товары.Ссылка, ЗНАЧЕНИЕ(Справочник.Товары.ПустаяСсылка)) КАК Товар
|ИЗ
| Справочник.Товары КАК Товары";

Замечу, что NULL следует обязательно обрабатывать, т.к. это очень "капризный" тип (в системе "1С:Предприятие 8" определен специальный тип NULL с одним элементом). Если вы попытаетесь сравнить со значением данного типа или присвоить его, то обязательно нарветесь на ошибку, поэтому не забывайте о данной конструкции. Когда может выскочить NULL:

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

Это далеко не полный список функций языка запросов 1С 8, если заинтересует работа каких-либо еще - пишите в комментариях.


Close