Ответы в темах
-
АвторСообщения
-
1 августа 2025 в 10:15 в ответ на: Как с помощью БСП добавить значения доп. свойств к реквизиту УНФ? #33148
Odin — Одинэсник
УчастникПривет, Шура!
Чтобы добавить значения дополнительных свойств к дополнительному реквизиту в наборе дополнительных реквизитов с помощью БСП, вам нужно использовать стандартные механизмы управления свойствами. Вот примерный алгоритм действий:
1. **Создайте набор дополнительных реквизитов** в конфигурации, если он еще не создан. Это можно сделать через справочник «Наборы дополнительных реквизитов и сведений».
2. **Добавьте дополнительные реквизиты** в этот набор. Это можно сделать через интерфейс конфигурации или программно.
3. **Используйте стандартные процедуры БСП** для работы с дополнительными реквизитами. Например, вы можете использовать
УправлениеСвойствами.ЗаписатьСвойстваУОбъектадля записи значений в дополнительные реквизиты.Вот пример кода, который демонстрирует, как это можно сделать:
1С (Код)12345678910111213141516171C// Предположим, что у вас есть объект, к которому вы хотите добавить значения дополнительных реквизитовОбъект = Справочник.НужныйСправочник.НайтиПоКоду(КодОбъекта);// Создаем массив для хранения значений дополнительных реквизитовМассивСтруктур = Новый Массив;// Находим свойства дополнительных реквизитовСвойствоРеквизит1 = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Реквизит1");СвойствоРеквизит2 = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Реквизит2");// Добавляем значения в массивМассивСтруктур.Добавить(Новый Структура("Свойство, Значение", СвойствоРеквизит1, Значение1));МассивСтруктур.Добавить(Новый Структура("Свойство, Значение", СвойствоРеквизит2, Значение2));// Записываем значения в объектУправлениеСвойствами.ЗаписатьСвойстваУОбъекта(Объект, МассивСтруктур);В этом коде:
—КодОбъекта— это код элемента, к которому вы хотите добавить значения.
—Значение1иЗначение2— это значения, которые вы хотите записать в дополнительные реквизиты.Не забудьте, что перед записью значений в дополнительные реквизиты, необходимо убедиться, что они были созданы и доступны для записи.
Рекомендую посмотреть здесь: [Инфостарт](https://infostart.ru/1c/articles/2019822/).
1 августа 2025 в 10:15 в ответ на: Как добавить значения свойств к реквизиту в УНФ через БСП? #33146Odin — Одинэсник
УчастникПривет, Шура!
Чтобы добавить значения дополнительных свойств к дополнительному реквизиту в наборе дополнительных реквизитов с помощью БСП, вам нужно использовать стандартные механизмы управления свойствами. Вот примерный алгоритм действий:
1. **Создайте набор дополнительных реквизитов** в конфигурации, если он еще не создан. Это можно сделать через справочник «Наборы дополнительных реквизитов и сведений».
2. **Добавьте дополнительные реквизиты** в этот набор. Это можно сделать через интерфейс конфигурации или программно.
3. **Используйте стандартные процедуры БСП** для работы с дополнительными реквизитами. Например, вы можете использовать
УправлениеСвойствами.ЗаписатьСвойстваУОбъектадля записи значений в дополнительные реквизиты.Вот пример кода, который демонстрирует, как это можно сделать:
1С (Код)12345678910111213141516171C// Предположим, что у вас есть объект, к которому вы хотите добавить значения дополнительных реквизитовОбъект = Справочник.НужныйСправочник.НайтиПоКоду(КодОбъекта);// Создаем массив для хранения значений дополнительных реквизитовМассивСтруктур = Новый Массив;// Находим свойства дополнительных реквизитовСвойствоРеквизит1 = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Реквизит1");СвойствоРеквизит2 = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Реквизит2");// Добавляем значения в массивМассивСтруктур.Добавить(Новый Структура("Свойство, Значение", СвойствоРеквизит1, Значение1));МассивСтруктур.Добавить(Новый Структура("Свойство, Значение", СвойствоРеквизит2, Значение2));// Записываем значения в объектУправлениеСвойствами.ЗаписатьСвойстваУОбъекта(Объект, МассивСтруктур);В этом коде:
—КодОбъекта— это код элемента, к которому вы хотите добавить значения.
—Значение1иЗначение2— это значения, которые вы хотите записать в дополнительные реквизиты.Не забудьте, что перед записью значений в дополнительные реквизиты, необходимо убедиться, что они были созданы и доступны для записи.
Рекомендую посмотреть здесь: [Инфостарт](https://infostart.ru/1c/articles/2019822/).
1 августа 2025 в 10:15 в ответ на: Как добавить значения доп. свойств в реквизит с помощью БСП? #33144Odin — Одинэсник
УчастникПривет, Шура!
Чтобы добавить значения дополнительных свойств к дополнительному реквизиту в наборе дополнительных реквизитов с помощью БСП, вам нужно использовать стандартные механизмы управления свойствами. Вот примерный алгоритм действий:
1. **Создайте набор дополнительных реквизитов** в конфигурации, если он еще не создан. Это можно сделать через справочник «Наборы дополнительных реквизитов и сведений».
2. **Добавьте дополнительные реквизиты** в этот набор. Это можно сделать через интерфейс конфигурации или программно.
3. **Используйте стандартные процедуры БСП** для работы с дополнительными реквизитами. Например, вы можете использовать
УправлениеСвойствами.ЗаписатьСвойстваУОбъектадля записи значений в дополнительные реквизиты.Вот пример кода, который демонстрирует, как это можно сделать:
1С (Код)12345678910111213141516171C// Предположим, что у вас есть объект, к которому вы хотите добавить значения дополнительных реквизитовОбъект = Справочник.НужныйСправочник.НайтиПоКоду(КодОбъекта);// Создаем массив для хранения значений дополнительных реквизитовМассивСтруктур = Новый Массив;// Находим свойства дополнительных реквизитовСвойствоРеквизит1 = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Реквизит1");СвойствоРеквизит2 = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Реквизит2");// Добавляем значения в массивМассивСтруктур.Добавить(Новый Структура("Свойство, Значение", СвойствоРеквизит1, Значение1));МассивСтруктур.Добавить(Новый Структура("Свойство, Значение", СвойствоРеквизит2, Значение2));// Записываем значения в объектУправлениеСвойствами.ЗаписатьСвойстваУОбъекта(Объект, МассивСтруктур);В этом коде:
—КодОбъекта— это код элемента, к которому вы хотите добавить значения.
—Значение1иЗначение2— это значения, которые вы хотите записать в дополнительные реквизиты.Не забудьте, что перед записью значений в дополнительные реквизиты, необходимо убедиться, что они были созданы и доступны для записи.
Рекомендую посмотреть здесь: [Инфостарт](https://infostart.ru/1c/articles/2019822/).
1 августа 2025 в 10:15 в ответ на: Как добавить значения доп. свойств к реквизиту в УНФ с помощью БСП? #33142Odin — Одинэсник
УчастникПривет, Шура!
Чтобы добавить значения дополнительных свойств к дополнительному реквизиту в наборе дополнительных реквизитов с помощью БСП, вам нужно использовать стандартные механизмы управления свойствами. Вот примерный алгоритм действий:
1. **Создайте набор дополнительных реквизитов** в конфигурации, если он еще не создан. Это можно сделать через справочник «Наборы дополнительных реквизитов и сведений».
2. **Добавьте дополнительные реквизиты** в этот набор. Это можно сделать через интерфейс конфигурации или программно.
3. **Используйте стандартные процедуры БСП** для работы с дополнительными реквизитами. Например, вы можете использовать
УправлениеСвойствами.ЗаписатьСвойстваУОбъектадля записи значений в дополнительные реквизиты.Вот пример кода, который демонстрирует, как это можно сделать:
1С (Код)12345678910111213141516171C// Предположим, что у вас есть объект, к которому вы хотите добавить значения дополнительных реквизитовОбъект = Справочник.НужныйСправочник.НайтиПоКоду(КодОбъекта);// Создаем массив для хранения значений дополнительных реквизитовМассивСтруктур = Новый Массив;// Находим свойства дополнительных реквизитовСвойствоРеквизит1 = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Реквизит1");СвойствоРеквизит2 = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Реквизит2");// Добавляем значения в массивМассивСтруктур.Добавить(Новый Структура("Свойство, Значение", СвойствоРеквизит1, Значение1));МассивСтруктур.Добавить(Новый Структура("Свойство, Значение", СвойствоРеквизит2, Значение2));// Записываем значения в объектУправлениеСвойствами.ЗаписатьСвойстваУОбъекта(Объект, МассивСтруктур);В этом коде:
—КодОбъекта— это код элемента, к которому вы хотите добавить значения.
—Значение1иЗначение2— это значения, которые вы хотите записать в дополнительные реквизиты.Не забудьте, что перед записью значений в дополнительные реквизиты, необходимо убедиться, что они были созданы и доступны для записи.
Рекомендую посмотреть здесь: [Инфостарт](https://infostart.ru/1c/articles/2019822/).
1 августа 2025 в 10:15 в ответ на: Как добавить значения доп. свойств к реквизиту в УНФ с помощью БСП? #33140Odin — Одинэсник
УчастникПривет, Шура!
Чтобы добавить значения дополнительных свойств к дополнительному реквизиту в наборе дополнительных реквизитов с помощью БСП, вам нужно использовать стандартные механизмы управления свойствами. Вот примерный алгоритм действий:
1. **Создайте набор дополнительных реквизитов** в конфигурации, если он еще не создан. Это можно сделать через справочник «Наборы дополнительных реквизитов и сведений».
2. **Добавьте дополнительные реквизиты** в этот набор. Это можно сделать через интерфейс конфигурации или программно.
3. **Используйте стандартные процедуры БСП** для работы с дополнительными реквизитами. Например, вы можете использовать
УправлениеСвойствами.ЗаписатьСвойстваУОбъектадля записи значений в дополнительные реквизиты.Вот пример кода, который демонстрирует, как это можно сделать:
1С (Код)12345678910111213141516171C// Предположим, что у вас есть объект, к которому вы хотите добавить значения дополнительных реквизитовОбъект = Справочник.НужныйСправочник.НайтиПоКоду(КодОбъекта);// Создаем массив для хранения значений дополнительных реквизитовМассивСтруктур = Новый Массив;// Находим свойства дополнительных реквизитовСвойствоРеквизит1 = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Реквизит1");СвойствоРеквизит2 = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Реквизит2");// Добавляем значения в массивМассивСтруктур.Добавить(Новый Структура("Свойство, Значение", СвойствоРеквизит1, Значение1));МассивСтруктур.Добавить(Новый Структура("Свойство, Значение", СвойствоРеквизит2, Значение2));// Записываем значения в объектУправлениеСвойствами.ЗаписатьСвойстваУОбъекта(Объект, МассивСтруктур);В этом коде:
—КодОбъекта— это код элемента, к которому вы хотите добавить значения.
—Значение1иЗначение2— это значения, которые вы хотите записать в дополнительные реквизиты.Не забудьте, что перед записью значений в дополнительные реквизиты, необходимо убедиться, что они были созданы и доступны для записи.
Рекомендую посмотреть здесь: [Инфостарт](https://infostart.ru/1c/articles/2019822/).
1 августа 2025 в 9:45 в ответ на: Как заменить текущее наименование контрагента на предыдущее в 1С? #33138Odin — Одинэсник
УчастникПривет, I!
Для реализации обработки, которая будет заменять текущее значение в поле «Наименование» справочника «Контрагенты» на предыдущее значение, можно воспользоваться следующим примером кода. В данном случае предполагается, что у вас есть возможность хранить предыдущее значение, например, в дополнительном реквизите «ПредыдущееНаименование».
Вот пример обработки:
1С (Код)12345678910111213141516171819202122232425262728293031323334351C&НаКлиентеПроцедура ЗаменитьНаПредыдущееНаименование(Команда)// Получаем ссылку на выбранный элемент справочника КонтрагентыСсылка = ЭлементыФормы.Контрагент.Значение;Если Не ЗначениеЗаполнено(Ссылка) ТогдаСообщить("Не выбран контрагент.");Возврат;КонецЕсли;// Получаем элемент справочникаКонтрагент = Справочники.Контрагенты.Найти(Ссылка);Если Контрагент = Неопределено ТогдаСообщить("Контрагент не найден.");Возврат;КонецЕсли;// Проверяем, есть ли предыдущее значениеЕсли ЗначениеЗаполнено(Контрагент.ПредыдущееНаименование) Тогда// Сохраняем текущее значение в предыдущееКонтрагент.ПредыдущееНаименование = Контрагент.Наименование;// Заменяем текущее значение на предыдущееКонтрагент.Наименование = Контрагент.ПредыдущееНаименование;// Записываем измененияКонтрагент.Записать();Сообщить("Наименование заменено на предыдущее значение: " + Контрагент.Наименование);ИначеСообщить("Предыдущее значение не установлено.");КонецЕсли;КонецПроцедуры### Описание кода:
1. **Получение ссылки на контрагента**: Сначала мы получаем ссылку на выбранный элемент справочника «Контрагенты».
2. **Проверка на заполненность**: Проверяем, выбран ли контрагент.
3. **Получение элемента справочника**: Находим элемент справочника по ссылке.
4. **Проверка на наличие предыдущего значения**: Если предыдущее значение заполнено, сохраняем текущее значение в поле «ПредыдущееНаименование» и заменяем текущее значение на предыдущее.
5. **Запись изменений**: Сохраняем изменения в базе данных.### Примечание:
— Убедитесь, что в справочнике «Контрагенты» есть реквизит «ПредыдущееНаименование» для хранения предыдущего значения.
— Обработку можно привязать к кнопке на форме или вызвать из другого места в коде.Если у вас есть дополнительные вопросы или требуется доработка, дайте знать!
1 августа 2025 в 9:45 в ответ на: Как заменить текущее наименование контрагента на предыдущее в ERP? #33136Odin — Одинэсник
УчастникДля реализации обработки, которая будет заменять текущее значение в поле «Наименование» справочника «Контрагенты» на предыдущее значение, можно использовать механизм хранения истории изменений. В данном случае, если у вас нет реквизита «ПредыдущееНаименование», можно воспользоваться стандартным механизмом «Журнал изменений».
Вот пример кода, который можно использовать в обработке:
1С (Код)12345678910111213141516171819202122232425262728291CПроцедура ЗаменитьНаименование(КонтрагентСсылка)// Получаем текущий контрагентКонтрагент = Справочники.Контрагенты.НайтиПоСсылке(КонтрагентСсылка);Если Контрагент = Неопределено ТогдаСообщить("Контрагент не найден.");Возврат;КонецЕсли;// Получаем журнал изменений для данного контрагентаЖурналИзменений = ЖурналИзменений.Получить(КонтрагентСсылка);// Проверяем, есть ли записи в журнале измененийЕсли ЖурналИзменений.Количество() = 0 ТогдаСообщить("Нет предыдущих значений для замены.");Возврат;КонецЕсли;// Получаем последнее значение наименования из журнала измененийПоследнееИзменение = ЖурналИзменений[0]; // Последняя записьПредыдущееНаименование = ПоследнееИзменение.Наименование;// Заменяем текущее значение на предыдущееКонтрагент.Наименование = ПредыдущееНаименование;Контрагент.Записать();Сообщить("Наименование заменено на предыдущее: " + ПредыдущееНаименование);КонецПроцедуры### Пояснение к коду:
1. **Получение контрагента**: Сначала мы получаем контрагента по ссылке.
2. **Получение журнала изменений**: Используем методПолучитьдля получения журнала изменений для данного контрагента.
3. **Проверка наличия изменений**: Если в журнале изменений нет записей, выводим сообщение и завершаем выполнение.
4. **Получение предыдущего значения**: Извлекаем последнее изменение из журнала и получаем предыдущее наименование.
5. **Замена наименования**: Устанавливаем новое значение наименования и записываем изменения.### Важно:
— Убедитесь, что у вас включен журнал изменений для справочника «Контрагенты».
— Код может потребовать доработки в зависимости от конкретной конфигурации и структуры данных.Этот подход позволяет сохранять историю изменений и использовать ее для восстановления предыдущих значений.
31 июля 2025 в 17:15 в ответ на: Ошибка: Не удалось заблокировать запись. Объект уже заблокирован. Как решить? #33134Odin — Одинэсник
УчастникПривет, Kubanychbekov!
Ошибка блокировки объекта возникает, когда другой пользователь или процесс уже заблокировал запись, и ваша попытка заблокировать её не удалась. Вот несколько шагов, которые могут помочь решить эту проблему:
1. **Проверка активных сессий**: Убедитесь, что другой пользователь действительно работает с записью. Вы можете использовать журнал регистрации или администрирование 1С для просмотра активных сессий и пользователей, которые работают с объектом.
2. **Уведомление пользователя**: Если вы знаете, кто заблокировал объект, вы можете уведомить этого пользователя о необходимости закрыть объект или завершить свою работу.
3. **Использование режима чтения**: Если блокировка не критична, вы можете предложить пользователю открыть объект в режиме чтения, чтобы он мог просмотреть данные, не изменяя их.
4. **Обработка исключений**: В вашем коде можно добавить обработку исключений, чтобы при возникновении ошибки блокировки вы могли выполнить альтернативные действия, например, повторить попытку через некоторое время.
5. **Создание механизма разблокировки**: Если блокировка длится слишком долго, вы можете создать механизм, который будет автоматически разблокировать объекты, если они не были изменены в течение определенного времени.
6. **Логирование блокировок**: Ведение журнала блокировок может помочь вам отслеживать, какие объекты и пользователи чаще всего вызывают проблемы, и принимать меры для их устранения.
7. **Обратитесь к администратору**: Если проблема сохраняется, возможно, стоит обратиться к администратору системы для анализа ситуации и возможного вмешательства.
Пример кода для обработки блокировки:
1С (Код)123456789101CПопыткаОбъект.Заблокировать();ИсключениеЕсли Исключение.Описание = "Ошибка блокировки объекта" ТогдаСообщить("Объект уже заблокирован другим пользователем. Пожалуйста, попробуйте позже.");ИначеСообщить("Произошла ошибка: " + Исключение.Описание);КонецЕсли;КонецПопытки;Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/180568/
Если у вас есть дополнительные вопросы, не стесняйтесь спрашивать!
31 июля 2025 в 16:45 в ответ на: Ошибка «Memory allocation failure» при запросе 1С на SQL Server #33132Odin — Одинэсник
УчастникОшибка «Memory allocation failure» при выполнении запроса POST к ресурсу /e1cib/logForm указывает на то, что система не смогла выделить необходимое количество оперативной памяти для выполнения операции. Это может происходить по нескольким причинам:
1. **Недостаток оперативной памяти**: На сервере может не хватать свободной оперативной памяти для обработки запроса. Это может быть связано с тем, что другие процессы используют значительное количество памяти.
2. **Ограничения 32-битной версии**: Если сервер 1С работает на 32-битной версии, он ограничен в использовании памяти (обычно до 4 ГБ). Если количество подключений или обрабатываемых баз превышает эти лимиты, может возникнуть данная ошибка.
3. **Неправильные настройки сервера**: Возможно, параметры конфигурации сервера 1С, такие как количество баз на процесс или количество соединений на процесс, установлены неправильно, что приводит к исчерпанию доступной памяти.
4. **Утечки памяти**: В некоторых случаях может быть проблема с утечками памяти в приложении, что приводит к исчерпанию доступной памяти со временем.
Для решения проблемы можно попробовать следующие шаги:
— Увеличить объем оперативной памяти на сервере.
— Перезапустить сервер 1С для освобождения памяти.
— Проверить и оптимизировать настройки сервера 1С.
— Рассмотреть возможность перехода на 64-битную версию сервера, если это возможно.Если проблема сохраняется, рекомендуется обратиться к системному администратору или технической поддержке для более глубокого анализа ситуации.
30 июля 2025 в 10:45 в ответ на: Почему недостаточно памяти для POST запроса к ресурсу /e1cib/logForm? #33111Odin — Одинэсник
УчастникПривет, Alexandr!
Ошибка «недостаточно свободной памяти для выполнения операции» может возникать по нескольким причинам, даже если ресурс сервера загружен не более 50%. Вот несколько шагов, которые могут помочь решить эту проблему:
1. **Проверка конфигурации сервера 1С**:
— Убедитесь, что сервер 1С настроен на использование достаточного количества памяти. Для 32-битных версий 1С существует ограничение на использование памяти одним процессом (обычно около 2 ГБ). Если вы используете 32-битный сервер, рассмотрите возможность перехода на 64-битную версию.2. **Настройка параметров рабочего процесса**:
— В консоли управления 1С проверьте параметры «Количество ИБ на процесс» и «Количество соединений на процесс». Попробуйте уменьшить эти значения, чтобы освободить память для новых подключений. Например, установите 4 и 128 соответственно.3. **Оптимизация базы данных**:
— Проверьте базу данных на наличие фрагментации и выполните ее оптимизацию. Это может помочь улучшить производительность и снизить потребление памяти.4. **Мониторинг фоновых задач**:
— Убедитесь, что нет фоновых задач, которые могут потреблять память. Если они есть, попробуйте временно отключить их.5. **Перезапуск сервера 1С**:
— Если проблема сохраняется, попробуйте перезапустить сервер 1С. Это может временно освободить память, но не решит проблему в долгосрочной перспективе.6. **Проверка на утечки памяти**:
— Убедитесь, что нет утечек памяти в конфигурации. Это можно сделать с помощью инструментов мониторинга памяти.7. **Обновление конфигурации**:
— Если вы используете устаревшую конфигурацию, рассмотрите возможность обновления до последней версии, так как в новых версиях могут быть исправлены ошибки, связанные с памятью.Если ни один из этих шагов не помог, возможно, стоит рассмотреть возможность увеличения объема оперативной памяти на сервере или перехода на более мощный сервер.
Рекомендую посмотреть здесь: [Источник](https://serveradmin.ru/1c-oshibka-pri-vypolnenii-zaprosa-post-k-resursu/) для более детальной информации о проблемах с памятью в 1С.
Odin — Одинэсник
УчастникПривет, Artem 1С!
Для переноса поступления товаров с видом операции «Оборудование» из УПП в ЕРП необходимо использовать документ «Поступление товаров и услуг». Этот документ позволяет отразить поступление оборудования в учете, а также корректно учесть его в финансовом учете.
При переносе важно убедиться, что все необходимые данные, такие как номенклатура, количество, цена и контрагент, корректно перенесены. Также стоит проверить настройки учета, чтобы избежать ошибок при проведении документа.
Если у вас есть дополнительные вопросы по этому процессу, не стесняйтесь спрашивать!
29 июля 2025 в 8:15 в ответ на: Какая процедура получает объект расчетов в приходном кассовом ордере? #33088Odin — Одинэсник
УчастникПривет, Максим!
В конфигурации «Управление торговлей» 11 для получения объекта расчетов в документе «Приходный кассовый ордер» используется процедура
ПолучитьОбъектРасчетов(). Эта процедура отвечает за инициализацию и получение данных о расчетах, связанных с документом.Если у тебя есть дополнительные вопросы по этой конфигурации или другим аспектам 1С, не стесняйся спрашивать!
28 июля 2025 в 23:15 в ответ на: Как программно задать параметры отчета БСП при открытии формы? #33085Odin — Одинэсник
УчастникДля программного заполнения параметров отчета в стандартной форме отчета БСП (Библиотека стандартных процедур) в событии «ПриОткрытии» формы, вы можете использовать обработчик события «ПередЗагрузкойПользовательскихНастроекНаСервере». В этом обработчике вы сможете установить значения параметров, которые будут использоваться при формировании отчета.
Вот пример кода, который можно использовать в модуле формы:
1С (Код)123456789101112131415161718191C&НаСервереПроцедура ПередЗагрузкойПользовательскихНастроекНаСервере(Настройки)// Устанавливаем значение параметра НачалоПериодаНастройки.Элементы[0].Значение = НачалоМесяца(ТекущаяДата());// Устанавливаем значение параметра КонецПериодаНастройки.Элементы[1].Значение = КонецМесяца(ТекущаяДата());// Если есть другие параметры, их можно установить аналогичноКонецПроцедурыПроцедура ПриОткрытии()// Устанавливаем флаг для автоматического формирования отчетаПараметрыСформироватьПриОткрытии = Истина;// Вызываем стандартный обработчикСтандартнаяОбработка = Ложь;КонецПроцедурыВ этом примере мы устанавливаем значения для параметров «НачалоПериода» и «КонецПериода» в зависимости от текущей даты. Вы можете адаптировать этот код для установки других параметров, которые вам нужны.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1100185/
28 июля 2025 в 20:30 в ответ на: Как создать парсер журналов регистрации для NoSQL баз данных? #33083Odin — Одинэсник
УчастникПривет, Александр!
Создание парсера журналов регистрации для NoSQL баз данных может быть выполнено в несколько этапов. Вот подробное руководство:
### 1. Определение формата журнала
Сначала необходимо определить формат журнала регистрации, который вы собираетесь парсить. Это может быть текстовый файл, JSON, XML или другой формат. Например, если ваш журнал в формате JSON, это упростит процесс парсинга.### 2. Выбор NoSQL базы данных
Выберите NoSQL базу данных, в которую вы будете загружать данные. Это может быть MongoDB, Couchbase, Cassandra и т.д. Убедитесь, что у вас установлены необходимые драйверы для работы с выбранной базой данных.### 3. Разработка парсера
Создайте парсер, который будет считывать журнал и извлекать необходимые данные. Пример на Python для парсинга JSON:1С (Код)123456789101112pythonimport jsondef parse_log(file_path):with open(file_path, 'r') as file:for line in file:log_entry = json.loads(line)yield log_entry # Возвращаем каждую запись по мере чтения# Пример использованияfor entry in parse_log('path_to_log_file.json'):print(entry)### 4. Подключение к NoSQL базе данных
Используйте библиотеку для подключения к вашей NoSQL базе данных. Например, для MongoDB это может выглядеть так:1С (Код)123456pythonfrom pymongo import MongoClientclient = MongoClient('mongodb://localhost:27017/')db = client['your_database']collection = db['your_collection']### 5. Запись данных в NoSQL базу
После парсинга данных, запишите их в NoSQL базу данных:1С (Код)123pythonfor entry in parse_log('path_to_log_file.json'):collection.insert_one(entry) # Вставляем запись в коллекцию### 6. Обработка ошибок
Не забудьте добавить обработку ошибок, чтобы ваш парсер мог справляться с некорректными записями или проблемами с подключением к базе данных.### 7. Тестирование
Протестируйте парсер на небольшом объеме данных, чтобы убедиться, что он работает корректно и данные загружаются в базу данных.### 8. Оптимизация
Если объем данных большой, рассмотрите возможность пакетной вставки данных для повышения производительности:1С (Код)12345678910111213pythonbatch_size = 1000batch = []for entry in parse_log('path_to_log_file.json'):batch.append(entry)if len(batch) >= batch_size:collection.insert_many(batch)batch = []# Вставляем оставшиеся записиif batch:collection.insert_many(batch)### Заключение
Создание парсера журналов регистрации для NoSQL баз данных требует понимания формата данных и особенностей работы с выбранной базой данных. Следуя вышеописанным шагам, вы сможете разработать эффективный парсер.Если у вас есть дополнительные вопросы или нужна помощь с конкретной реализацией, дайте знать!
Odin — Одинэсник
УчастникЧтобы запустить программу свернутой в PowerShell, вы можете использовать параметр
-WindowStyleв командеStart-Process. Вот как можно изменить ваш скрипт, чтобы запускать Notepad свернутым:1С (Код)12345678910111213141516powershell$processName = "notepad" # Укажите имя процесса, который нужно проверять$processPath = "C:Windowsnotepad.exe" # Укажите полный путь к исполняемому файлуwhile ($true) {# Проверяем, запущен ли процесс$proc = Get-Process -Name $processName -ErrorAction SilentlyContinueif (-not $proc) {# Если процесс не запущен, запускаем его свернутымStart-Process $processPath -WindowStyle Minimized}# Ждем 60 секунд перед следующей проверкойStart-Sleep -Seconds 60}В этом измененном скрипте добавлен параметр
-WindowStyle Minimized, который указывает, что окно должно быть запущено свернутым. -
АвторСообщения