Ответы в темах
-
АвторСообщения
-
25 марта 2025 в 18:30 в ответ на: Как удалить из табличной части строки с видом «роза» и высотой 0 на 1С? #32022
Для удаления из табличной части записи с видом растения «роза» и высотой 0, можно использовать следующий код на языке 1С:
1C &НаКлиенте Процедура УдалитьРозыСВысотой0() Для Каждого Строка Из Объект.ТабличнаяЧасть Цикл Если Строка.ВидРастения = "Роза" И Строка.Высота = 0 Тогда Объект.ТабличнаяЧасть.Удалить(Строка); КонецЕсли; КонецЦикла; КонецПроцедурыЭтот код проходит по всем строкам табличной части и удаляет те, которые соответствуют заданным условиям. Убедитесь, что вы вызываете эту процедуру в нужном месте, например, при нажатии кнопки или в событии формы.
25 марта 2025 в 18:30 в ответ на: Как удалить из табличной части вид растения «роза» с высотой 0? #32020Для удаления из табличной части записи с видом растения «роза» и высотой 0, можно использовать следующий код на языке 1С:
1C &НаКлиенте Процедура УдалитьРозыСВысотой0() Для Каждого Строка Из Объект.ТабличнаяЧасть Цикл Если Строка.ВидРастения = "Роза" И Строка.Высота = 0 Тогда Объект.ТабличнаяЧасть.Удалить(Строка); КонецЕсли; КонецЦикла; КонецПроцедурыЭтот код проходит по всем строкам табличной части и удаляет те, которые соответствуют заданным условиям. Убедитесь, что вы вызываете эту процедуру в нужном месте, например, при нажатии кнопки или в событии формы.
Привет, Данил!
При объединении двух типовых конфигураций «Зарплата и управление персоналом» (ЗУП) в процессе слияния организаций необходимо учитывать следующие объекты для выгрузки:
1. **Справочники**:
— Справочник «Сотрудники» – для переноса данных о работниках.
— Справочник «Должности» – для сохранения информации о должностях.
— Справочник «Подразделения» – для переноса структурных единиц.
— Справочник «Виды расчета» – для переноса информации о начислениях и удержаниях.
— Справочник «Организации» – для обновления данных о головной и филиальных организациях.2. **Документы**:
— Документы «Прием на работу» – для переноса информации о трудоустройстве сотрудников.
— Документы «Кадровые перемещения» – для учета изменений в трудовых отношениях.
— Документы «Увольнение» – для учета увольнений сотрудников.
— Документы «Начисление зарплаты» – для переноса данных о начислениях за период.3. **Регистры**:
— Регистры накопления «Зарплата к выплате» – для учета начислений и выплат.
— Регистры накопления «Расчет по среднему» – для сохранения данных о среднем заработке.
— Регистры бухгалтерии, если они используются для учета зарплаты.4. **Настройки**:
— Настройки параметров расчета зарплаты и отчетности – для корректного функционирования системы после объединения.5. **Отчеты**:
— Отчеты, которые могут понадобиться для анализа данных после объединения.Важно также учитывать, что перед выгрузкой необходимо провести анализ и подготовку данных, чтобы избежать дублирования и конфликтов в идентификаторах объектов. Рекомендуется использовать типовые механизмы переноса данных, предусмотренные в конфигурации.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1132468/
Для вывода массы в тоннах с указанием дробной части в граммах, вы можете использовать функцию `ЧислоПрописью` с соответствующими параметрами. Вот пример кода на 1С:
1C // Пример массы в килограммах МассаГрузаКг = 1234.56; // масса в килограммах // Переводим массу в тонны МассаГрузаТонны = МассаГрузаКг / 1000; // Параметры для вывода прописью ПараметрыПредметаИсчисления = "тонна, тонны, тонн, м, грамм, грамма, граммов, м, 3"; ФорматнаяСтрока = "Л=ru_RU; ДП=Истина"; // Выводим массу прописью Сообщить(ЧислоПрописью(МассаГрузаТонны, ФорматнаяСтрока, ПараметрыПредметаИсчисления));
В этом коде мы сначала переводим массу из килограммов в тонны, а затем используем функцию `ЧислоПрописью` для вывода массы прописью с правильными параметрами для тонн и граммов.
Рекомендую посмотреть здесь: https://helpf.pro/faq/view/21.html
Для извлечения текста из тега `` в строке HTML в 1С можно использовать регулярные выражения или класс `ФорматированныйДокумент`. Вот два варианта решения:
### Вариант 1: Использование регулярных выражений
1C Функция ИзвлечьТекстИзSpan(ИсходныйТекст) РегЭксп = Новый COMОбъект("VBScript.RegExp"); РегЭксп.IgnoreCase = Истина; // Игнорировать регистр РегЭксп.Global = Ложь; // Поиск первого вхождения РегЭксп.Pattern = "]*>(.*?)"; // Шаблон для поиска текста в теге span Если РегЭксп.Test(ИсходныйТекст) Тогда Результат = РегЭксп.Execute(ИсходныйТекст); Возврат Результат[0].SubMatches[0]; // Возвращаем текст внутри тега span КонецЕсли; Возврат ""; // Если тег не найден, возвращаем пустую строку КонецФункции### Вариант 2: Использование класса `ФорматированныйДокумент`
1C Функция ИзвлечьТекстИзSpan(ИсходныйТекст) ФормДок = Новый ФорматированныйДокумент; Вложения = Новый Структура; ФормДок.УстановитьHTML(ИсходныйТекст, Вложения); Текст = ФормДок.ПолучитьТекст(); // Теперь можно искать текст в span, если нужно // Например, если нужно просто вернуть весь текст, можно сделать так: Возврат Текст; КонецФункции### Пример использования функции
1C ИсходныйHTML = "...
оборудования видеонаблюдения (СВН.СФР.СО) для объекта строительства «Жилая многоквартирная застройка в районе ул.Зеленая – ул.красная в г.» 3 очередь строительства» код 4935
"; ТекстИзSpan = ИзвлечьТекстИзSpan(ИсходныйHTML); Сообщить(ТекстИзSpan);Этот код извлечет текст «оборудования видеонаблюдения (СВН.СФР.СО) для объекта строительства «Жилая многоквартирная застройка в районе ул.Зеленая – ул.красная в г.» 3 очередь строительства» код 4935» из тега ``.
Рекомендую посмотреть здесь: https://helpf.pro/faq/view/990.html
25 марта 2025 в 9:00 в ответ на: Как создать отчет по накоплению бонусных баллов за период в 1С? #32012Для создания отчета, который будет выводить накопление бонусных баллов за определенный период, вам нужно использовать систему компоновки данных в 1С:Предприятие. Предположим, что у вас есть регистр накопления, который хранит информацию о бонусных баллах.
Вот примерный алгоритм и код для создания такого отчета:
1. **Создайте новый отчет** в конфигурации и откройте конструктор схемы компоновки данных.
2. **Добавьте набор данных** с запросом к регистру накопления бонусных баллов. Например, предположим, что у вас есть регистр накопления `БонусныеБаллы`.
3. **Напишите запрос** для получения данных о бонусах за указанный период. Пример запроса:
sql ВЫБРАТЬ БонусныеБаллы.Период, СУММА(БонусныеБаллы.Количество) КАК НакопленныеБонусы ИЗ РегистрНакопления.БонусныеБаллы.История(&НачалоПериода, &КонецПериода) КАК БонусныеБаллы СГРУППИРОВАТЬ ПО БонусныеБаллы.Период4. **Добавьте параметры** для выбора периода отчета. Например, параметры `НачалоПериода` и `КонецПериода`.
5. **Создайте вычисляемое поле** для расчета разницы между накопленными бонусами на начало и конец периода. Например:
1C НакопленныеБонусы = НакопленныеБонусыНаКонец - НакопленныеБонусыНаНачало
6. **Настройте вывод данных** в табличном документе, чтобы отобразить результаты.
7. **Сформируйте отчет** и проверьте его на тестовых данных.
Пример кода для вычисляемого поля:
1C Если НакопленныеБонусыНаКонец Неопределено И НакопленныеБонусыНаНачало Неопределено Тогда Результат = НакопленныеБонусыНаКонец - НакопленныеБонусыНаНачало; Иначе Результат = 0; КонецЕсли;Таким образом, вы получите отчет, который будет выводить накопление бонусных баллов за указанный период.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/102435/
Причины, по которым поле на форме доступно, но не позволяет вводить данные, могут быть следующими:
1. **Права доступа**: У пользователя могут быть недостаточные права для редактирования данного поля. Проверьте настройки прав доступа для пользователя или группы.
2. **Настройки конфигурации**: Поле может быть настроено как «только для чтения» в конфигурации. Проверьте свойства поля в редакторе конфигурации.
3. **Автоматическое заполнение**: Если поле заполняется автоматически, то ручной ввод может быть запрещен. Это может быть связано с логикой обработки данных.
4. **Ошибки в коде**: Если в обработчиках событий формы есть ошибки, это может блокировать ввод данных. Проверьте код на наличие ошибок.
5. **Состояние формы**: Если форма находится в режиме просмотра, а не редактирования, это также может ограничивать возможность ввода.
6. **Проблемы с базой данных**: Если есть проблемы с подключением к базе данных или с самой базой, это может повлиять на возможность ввода данных.
Рекомендуется проверить каждую из этих причин, чтобы определить источник проблемы.
Здравствуйте, Екатерина!
Чтобы снизить доходы на расходы по таможенным платежам в бухгалтерии 1С, вам необходимо выполнить следующие шаги:
1. **Определите расходы по таможенным платежам**: Убедитесь, что у вас есть все необходимые документы, подтверждающие уплату таможенных пошлин и сборов.
2. **Создайте документ «Расходы»**: В 1С создайте документ, который будет отражать ваши расходы по таможенным платежам. Это может быть документ «Поступление товаров и услуг» или «Расходный кассовый ордер», в зависимости от того, как вы ведете учет.
3. **Выберите нужный счет**: В документе укажите счет, на который будут отнесены таможенные платежи. Обычно это счет 26 «Общие расходы» или 20 «Основное производство», в зависимости от вашей учетной политики.
4. **Заполните сумму**: Введите сумму таможенных платежей в соответствующее поле документа.
5. **Проведите документ**: После заполнения всех необходимых полей проведите документ. Это отразит расходы по таможенным платежам в бухгалтерском учете.
6. **Отразите в налоговом учете**: Убедитесь, что расходы по таможенным платежам правильно отразились в налоговом учете. Для этого проверьте соответствующие отчеты и регистры.
7. **Сформируйте отчетность**: При необходимости сформируйте отчетность, чтобы отразить уменьшение доходов на сумму таможенных платежей.
Таким образом, расходы по таможенным платежам будут учтены и снизят налогооблагаемую базу, что приведет к уменьшению суммы налога на прибыль.
Рекомендую посмотреть здесь: [Учет таможенных платежей в 1С](https://infostart.ru/1c/articles/122142/).
Язык программирования 1С:Предприятие (1С) является высокоуровневым языком, используемым для разработки бизнес-приложений на платформе 1С. Он поддерживает различные типы данных и структуры, которые позволяют эффективно работать с данными и реализовывать бизнес-логики. Ниже приведено описание базовых типов и структур данных языка 1С с примерами их применения.
### 1. Базовые типы данных
#### 1.1. Число
Тип данных для хранения числовых значений.**Пример:**
1C Сумма = 100.50; Сообщить("Сумма: " + Сумма);#### 1.2. Строка
Тип данных для хранения текстовых значений.**Пример:**
1C Имя = "Иван"; Сообщить("Привет, " + Имя);#### 1.3. Булево
Тип данных для хранения логических значений (Истина или Ложь).**Пример:**
1C Флаг = Истина; Если Флаг Тогда Сообщить("Флаг установлен в Истина"); КонецЕсли;#### 1.4. Дата
Тип данных для хранения даты и времени.**Пример:**
1C ТекущаяДата = ТекущаяДата(); Сообщить("Сегодня: " + Формат(ТекущаяДата, "ДЛФ"));#### 1.5. УникальныйИдентификатор
Тип данных для хранения уникальных идентификаторов.**Пример:**
1C Идентификатор = Новый УникальныйИдентификатор(); Идентификатор = УникальныйИдентификатор.Новое(); Сообщить("Уникальный идентификатор: " + Идентификатор);### 2. Структуры данных
#### 2.1. Массив
Структура данных для хранения упорядоченного набора значений.**Пример:**
1C МассивЧисел = Новый Массив(); МассивЧисел.Добавить(1); МассивЧисел.Добавить(2); МассивЧисел.Добавить(3); Для Каждого Число Из МассивЧисел Цикл Сообщить("Число: " + Число); КонецЦикла;#### 2.2. Структура
Структура данных для хранения пар «ключ-значение».**Пример:**
1C СтруктураДанных = Новый Структура(); СтруктураДанных.Вставить("Имя", "Иван"); СтруктураДанных.Вставить("Возраст", 30); Сообщить("Имя: " + СтруктураДанных.Имя); Сообщить("Возраст: " + СтруктураДанных.Возраст);#### 2.3. ТаблицаЗначений
Структура данных для хранения табличных данных.**Пример:**
1C Таблица = Новый ТаблицаЗначений(); Таблица.Колонки.Добавить("Наименование", Новый ОписаниеТипа("Строка")); Таблица.Колонки.Добавить("Цена", Новый ОписаниеТипа("Число")); Строка = Таблица.Добавить(); Строка.Наименование = "Товар 1"; Строка.Цена = 100; Строка = Таблица.Добавить(); Строка.Наименование = "Товар 2"; Строка.Цена = 200; Для Каждого Строка Из Таблица Цикл Сообщить("Наименование: " + Строка.Наименование + ", Цена: " + Строка.Цена); КонецЦикла;### 3. Примеры использования
#### 3.1. Функции
Функции в 1С позволяют организовать код и повторно использовать его.**Пример:**
1C Функция Сложить(Число1, Число2) Возврат Число1 + Число2; КонецФункции Результат = Сложить(5, 10); Сообщить("Результат сложения: " + Результат);#### 3.2. Процедуры
Процедуры выполняют действия, но не возвращают значения.**Пример:**
1C Процедура ПоказатьСообщение(Текст) Сообщить(Текст); КонецПроцедуры ПоказатьСообщение("Привет, мир!");### Заключение
Язык 1С:Предприятие предоставляет мощные инструменты для работы с данными и реализации бизнес-логики. Базовые типы данных и структуры, такие как Число, Строка, Массив, Структура и ТаблицаЗначений, позволяют разработчикам эффективно организовывать и обрабатывать информацию.Для того чтобы код срабатывал корректно, необходимо убедиться, что вызываемая форма документа действительно существует и что передаваемые параметры (документ и данные) корректны. Также стоит добавить обработку ошибок для более надежного выполнения. Вот исправленный вариант вашего кода:
1C &После("ПриВыбореДействияСообщенияСистемыВзаимодействия") Процедура Расш1_ПриВыбореДействияСообщенияСистемыВзаимодействия(Сообщение, Действие) Если ТипЗнч(Действие) = Тип("Структура") Тогда Если Действие.Тип = "ОткрытьФормуДокумента" Тогда Попытка ОткрытьФормуДокумента(Действие.Документ, Действие.Данные); Исключение Сообщить("Ошибка при открытии формы документа: " + ОписаниеОшибки()); КонецПопытки; КонецЕсли; КонецЕсли; КонецПроцедуры Процедура ОткрытьФормуДокумента(Документ, Данные) Попытка ФормаДокумента = ОткрытьФорму("Документ." + Документ + ".Форма.Объект"); ФормаДокумента.ЗаполнитьДанные(Данные); ФормаДокумента.Открыть(); Исключение Сообщить("Ошибка при открытии формы документа: " + ОписаниеОшибки()); КонецПопытки; КонецПроцедурыВ этом коде добавлены блоки `Попытка…Исключение`, которые помогут отловить ошибки при открытии формы документа и сообщить об этом пользователю. Убедитесь, что передаваемые параметры `Документ` и `Данные` корректны и соответствуют ожидаемым значениям.
24 марта 2025 в 19:15 в ответ на: Как добавить действие открытия документа в обработку сообщения 1С? #32002Чтобы добавить действие по открытию документа в ваш код обработки сообщения системы взаимодействия, вам нужно создать структуру для действия и добавить ее в ответное сообщение. Я внесу изменения в ваш код, чтобы включить это действие.
Вот обновленный код:
1C Процедура ОбработкаСообщенияСистемыВзаимодействия(Сообщение, ДополнительныеПараметры) ОтветноеСообщение = СистемаВзаимодействия.СоздатьСообщение(Сообщение.Обсуждение); Текст = ""; Код = ""; Если НРег(Сообщение.Текст) = 0 ИЛИ СтрНайти(НРег(Сообщение.Текст), "здравствуйте") 0 Тогда Текст = "Здравствуйте! Для оформления заявки напишите: 'Мое имя Иван', 'Мой телефон 1234567890', 'Хочу услугу Консультация', 'Удобное время завтра в 14:00'."; ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "мое имя") 0 И СтрНайти(НРег(Сообщение.Текст), "мой телефон") 0 И СтрНайти(НРег(Сообщение.Текст), "хочу услугу") 0 И СтрНайти(НРег(Сообщение.Текст), "удобное время") 0 Тогда Текст = "Спасибо за предоставленную информацию! Специалист свяжется с вами в скором времени."; ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "мое имя") 0 Тогда Код = "Имя"; Текст = "Спасибо! Имя записано: " + СтрЗаменить(Сообщение.Текст, "Мое имя", "") + ". Укажите ваш телефон."; ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "мой телефон") 0 Тогда Код = "Телефон"; Текст = "Спасибо! Телефон записан: " + СтрЗаменить(Сообщение.Текст, "Мой телефон", "") + ". Какую услугу вы хотите получить?"; ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "хочу услугу") 0 Тогда Код = "Услуга"; Текст = "Спасибо! Услуга записана: " + СтрЗаменить(Сообщение.Текст, "Хочу услугу", "") + ". Укажите удобное время."; ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "удобное время") 0 Тогда Код = "Время"; Текст = "Спасибо! Время записано: " + СтрЗаменить(Сообщение.Текст, "Удобное время", "") + ". Спасибо за предоставленную информацию! Опишите вашу ситуацию подробнее, чтобы специалист мог сразу помочь."; // Добавляем действие по открытию документа Действие = Новый Структура; Действие.Вставить("Тип", "ОткрытьФормуДокумента"); Действие.Вставить("Документ", "ЗаявкаКлиента"); Действие.Вставить("Данные", Сообщение.Текст); ОтветноеСообщение.Действия.Добавить(Действие, "Открыть заявку", БиблиотекаКартинок.БизнесПроцесс); ИначеЕсли СтрНайти(НРег(Сообщение.Текст), "ситуация") 0 Тогда Текст = "Спасибо за предоставленную информацию! Специалист свяжется с вами в скором времени."; Иначе Текст = "Извините, я не понял ваш запрос. Попробуйте снова."; КонецЕсли; ОтветноеСообщение.Текст = Текст; ОтветноеСообщение.Записать(); КонецПроцедурыВ этом коде я добавил действие по открытию документа «ЗаявкаКлиента» в блоке, где обрабатывается ввод времени. Теперь, когда пользователь укажет удобное время, будет создано действие для открытия формы документа.
24 марта 2025 в 19:00 в ответ на: Как открыть форму нового документа на сервере в 1С:Предприятии? #32000Чтобы открыть форму нового документа на сервере в 1С:Предприятии, необходимо выполнить несколько шагов. Вот пример кода, который демонстрирует, как это сделать:
1. На клиенте создаем процедуру, которая будет открывать форму нового документа.
2. На сервере создаем новый документ и передаем его в форму.Пример кода:
1C &НаКлиенте Процедура ОткрытьФормуНовогоДокумента(Команда) // Получаем форму нового документа Форма = ПолучитьФорму("Документ.НашДокумент.ФормаОбъекта"); // Получаем объект формы ДанныеФормы = Форма.Объект; // Заполняем документ на сервере ЗаполнитьДокументНаСервере(ДанныеФормы); // Копируем данные из нашего объекта в объект формы КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); // Открываем форму Форма.Открыть(); КонецПроцедуры &НаСервере Функция ЗаполнитьДокументНаСервере(ДанныеФормы) // Создаем новый документ Документ = Документы.НашДокумент.СоздатьДокумент(); // Заполняем реквизиты документа Документ.Реквизит1 = "Значение1"; Документ.Реквизит2 = "Значение2"; // Возвращаем заполненный документ в данные формы ЗначениеВДанныеФормы(Документ, ДанныеФормы); КонецФункцииВ этом примере:
— `ПолучитьФорму` используется для получения формы нового документа.
— `ЗаполнитьДокументНаСервере` создает новый документ и заполняет его реквизиты.
— `КопироватьДанныеФормы` копирует данные из созданного документа в объект формы.
— `Форма.Открыть()` открывает форму для редактирования.Таким образом, вы сможете открыть форму нового документа на сервере и заполнить ее необходимыми данными.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/189390/
24 марта 2025 в 18:00 в ответ на: Является ли поле «Сумма» в регистре «Запасы и затраты» себестоимостью в УНФ? #31998Поле «Сумма» регистра накопления «Запасы и затраты» в 1С УНФ не всегда является равнозначным себестоимости.
Себестоимость может включать в себя не только прямые затраты на приобретение товаров, но и дополнительные расходы, такие как транспортные расходы, таможенные пошлины, расходы на хранение и другие накладные расходы. В то время как поле «Сумма» в регистре «Запасы и затраты» может отражать только стоимость приобретения товара без учета этих дополнительных затрат.
Таким образом, для точного определения себестоимости необходимо учитывать все затраты, связанные с приобретением и хранением товара, а не полагаться только на значение поля «Сумма» в регистре накопления.
Рекомендую посмотреть здесь: https://helpf.pro/faq8/view/401.html
24 марта 2025 в 18:00 в ответ на: Что представляет собой поле «Сумма» в регистре «Запасы и затраты» в УНФ? #31996Поле «Сумма» регистра накопления «Запасы и затраты» в 1С:Управление небольшой фирмой (УНФ) представляет собой сумму всех затрат, связанных с учетом запасов и затрат на производство или приобретение товаров и услуг. Это может включать в себя стоимость приобретенных товаров, затраты на их хранение, а также другие связанные расходы. Сумма формируется на основании проводок, которые были созданы в результате различных операций, таких как поступление товаров, списание, реализация и т.д.
Таким образом, поле «Сумма» отражает общую величину затрат, накопленных в данном регистре на определенный момент времени.
24 марта 2025 в 17:45 в ответ на: Как получить ставку НДС в виде числа из перечисления с помощью БСП? #31994Для получения ставки НДС как числа из перечисления с помощью БСП (Библиотека стандартных подсистем) в 1С, вы можете использовать следующий код. Предположим, что у вас есть перечисление `СтавкиНДС`, и вы хотите получить числовое значение ставки НДС.
Вот пример кода, который можно использовать в обработчике или модуле:
1C // Получаем значение ставки НДС из перечисления Процедура ПолучитьСтавкуНДС(СтавкаНДСИзПеречисления) // Переменная для хранения числового значения ставки НДС Ставка = 0; // Проверяем, какая ставка НДС передана и присваиваем соответствующее значение Если СтавкаНДСИзПеречисления = Перечисления.СтавкиНДС.НДС20 Тогда Ставка = 20; ИначеЕсли СтавкаНДСИзПеречисления = Перечисления.СтавкиНДС.НДС18 Тогда Ставка = 18; ИначеЕсли СтавкаНДСИзПеречисления = Перечисления.СтавкиНДС.НДС10 Тогда Ставка = 10; ИначеЕсли СтавкаНДСИзПеречисления = Перечисления.СтавкиНДС.НДС0 Тогда Ставка = 0; ИначеЕсли СтавкаНДСИзПеречисления = Перечисления.СтавкиНДС.БезНДС Тогда Ставка = 0; КонецЕсли; // Возвращаем числовое значение ставки НДС Возврат Ставка; КонецПроцедурыВы можете вызвать эту процедуру, передав ей значение из перечисления, и она вернет соответствующую числовую ставку НДС.
Пример вызова:
1C СтавкаНДС = ПолучитьСтавкуНДС(Перечисления.СтавкиНДС.НДС20);
Этот код позволяет получить числовое значение ставки НДС из перечисления, что может быть полезно для дальнейших расчетов или отчетности.
-
АвторСообщения