Ответы в темах
-
АвторСообщения
-
Да, можно подсчитать количество выходных в диапазоне дат без использования цикла, используя SQL-запросы к регистру сведений производственного календаря. Вот пример запроса, который позволяет это сделать:
1C ВЫБРАТЬ КОЛИЧЕСТВО(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) КАК КоличествоВыходных ИЗ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь ГДЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря >= &ДатаНач И РегламентированныйПроизводственныйКалендарь.ДатаКалендаря <= &ДатаКонец И РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Выходной)В этом запросе вы передаете начальную и конечную даты, и он возвращает количество выходных дней в указанном диапазоне.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1312513/
Галина, давай разберем ошибку, указанную в сообщении.
### Анализ ошибки
1. **Тип ошибки**: Ошибка при вызове конструктора (УникальныйИдентификатор).
2. **Сообщение**: «Ошибка во времени выполнения встроенного языка, ОшибкаИспользованияВстроенногоЯзыка».
3. **Проблема**: Указано, что передано неверное значение параметра (параметр номер ‘1’).### Шаги для решения
1. **Понять контекст**:
— Определите, в каком месте кода происходит вызов конструктора. Это может быть связано с созданием объекта, например, документа или справочника.2. **Проверка параметров**:
— Убедитесь, что все параметры, передаваемые в конструктор, корректны. В данном случае, проверьте, что параметр номер ‘1’ имеет правильный тип и значение.3. **Отладка**:
— Используйте отладчик, чтобы установить точку останова на строке, где происходит вызов конструктора. Это позволит вам увидеть, какие значения передаются в момент вызова.4. **Логирование**:
— Добавьте временные сообщения или логи перед вызовом конструктора, чтобы зафиксировать значения параметров. Это поможет понять, что именно передается.5. **Проверка документации**:
— Ознакомьтесь с документацией по используемым объектам и их конструкторам. Убедитесь, что вы используете их правильно.6. **Тестирование**:
— После внесения изменений протестируйте код, чтобы убедиться, что ошибка устранена.### Пример кода
Если у вас есть код, который вызывает ошибку, он может выглядеть примерно так:
1C // Пример вызова конструктора Попытка НовыйОбъект = Новый УникальныйИдентификатор(НекорректныйПараметр); Исключение Сообщить("Ошибка: " + ОписаниеОшибки()); КонецПопытки;### Исправление
Убедитесь, что `НекорректныйПараметр` имеет правильное значение:
1C Попытка Если ЗначениеЗаполнено(КорректныйПараметр) Тогда НовыйОбъект = Новый УникальныйИдентификатор(КорректныйПараметр); Иначе Сообщить("Параметр не заполнен!"); КонецЕсли; Исключение Сообщить("Ошибка: " + ОписаниеОшибки()); КонецПопытки;### Заключение
Следуя этим шагам, вы сможете диагностировать и исправить ошибку. Если возникнут дополнительные вопросы, не стесняйтесь спрашивать!
Для защиты веб-публикации 1С Документооборот можно использовать несколько методов:
1. **SSL-сертификат**: Настройте HTTPS для шифрования данных, передаваемых между клиентом и сервером. Это защитит данные от перехвата.
2. **Аутентификация**: Используйте надежные методы аутентификации, такие как Windows Authentication или Basic Authentication с сильными паролями. Также можно рассмотреть двухфакторную аутентификацию.
3. **Настройка прав доступа**: Ограничьте доступ к веб-публикации только для определенных пользователей или групп. Настройте права доступа в 1С, чтобы пользователи могли видеть и редактировать только те документы, которые им разрешено.
4. **Файрвол**: Настройте файрвол для ограничения доступа к серверу только с определенных IP-адресов или диапазонов.
5. **Регулярные обновления**: Убедитесь, что все компоненты системы, включая сервер и платформу 1С, обновлены до последних версий для защиты от известных уязвимостей.
6. **Мониторинг и аудит**: Настройте мониторинг доступа и ведите журналы событий, чтобы отслеживать подозрительную активность.
7. **Резервное копирование**: Регулярно создавайте резервные копии базы данных и конфигураций, чтобы в случае атаки можно было восстановить данные.
8. **Обучение пользователей**: Проводите обучение для пользователей по вопросам безопасности, чтобы они знали, как распознавать фишинг и другие угрозы.
Эти меры помогут значительно повысить уровень безопасности веб-публикации 1С Документооборот.
Рекомендую посмотреть здесь: https://kuharbogdan.com/stati-po-1s/zashhita-1s-predpriyatiya-na-servere-terminalov-chast-3/
13 февраля 2025 в 15:15 в ответ на: Как создать макрос VBA для печати страниц из выпадающего списка в Excel? #31594Привет, I! Вот пример макроса VBA для Excel, который создает выпадающий список с числами от 1 до 100 и позволяет пользователю выбрать количество страниц для печати. После выбора макрос будет печатать указанное количество страниц.
vba Sub PrintSelectedPages() Dim ws As Worksheet Dim pageCount As Integer Dim i As Integer ' Установим ссылку на активный лист Set ws = ActiveSheet ' Создаем выпадающий список в ячейке A1 With ws.Range("A1").Validation .Delete ' Удаляем предыдущую валидацию, если есть .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100" .IgnoreBlank = True .InCellDropdown = True .ShowInput = True .ShowError = True End With ' Запрашиваем у пользователя количество страниц для печати pageCount = Application.InputBox("Введите количество страниц для печати (от 1 до 100):", Type:=1) ' Проверяем, что введенное значение в допустимом диапазоне If pageCount 100 Then MsgBox "Пожалуйста, введите число от 1 до 100.", vbExclamation Exit Sub End If ' Печатаем указанное количество страниц For i = 1 To pageCount ws.PrintOut From:=i, To:=i Next i MsgBox "Печать завершена!", vbInformation End SubЭтот макрос выполняет следующие действия:
1. Создает выпадающий список в ячейке A1 с числами от 1 до 100.
2. Запрашивает у пользователя количество страниц для печати.
3. Проверяет, что введенное значение находится в диапазоне от 1 до 100.
4. Печатает указанное количество страниц.Вы можете вставить этот код в редактор VBA (ALT + F11) и запустить его.
Для записи файла на FTP-сервер в 1С:Предприятии можно использовать объект `FTPСоединение`. Ниже приведен пример кода, который демонстрирует, как это сделать.
1C &НаКлиенте Процедура ЗаписатьФайлНаFTP() // Параметры FTP-соединения Сервер = "ftp.example.com"; // Адрес FTP-сервера Порт = 21; // Порт FTP ИмяПользователя = "user"; // Имя пользователя Пароль = "pass"; // Пароль пользователя КаталогНаСервере = "/mydir/"; // Каталог на сервере ЛокальныйФайл = "C:MyFile.txt"; // Путь к локальному файлу // Создаем FTP-соединение FTPСервер = Новый FTPСоединение(Сервер, Порт, ИмяПользователя, Пароль); Попытка // Записываем файл на сервер FTPСервер.Записать(ЛокальныйФайл, КаталогНаСервере + "MyFile.txt"); Сообщить("Файл успешно записан на FTP-сервер."); Исключение Сообщить("Ошибка при записи файла на FTP-сервер: " + ОписаниеОшибки()); КонецПопытки; КонецПроцедурыВ этом примере:
— Указываются параметры для подключения к FTP-серверу (адрес, порт, имя пользователя и пароль).
— Создается объект `FTPСоединение`.
— Используется метод `Записать()` для передачи локального файла на сервер в указанный каталог.Не забудьте заменить параметры на свои собственные значения.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/835334/
Для создания файла Excel с разбивкой на страницы в 1С:Предприятие можно использовать объект COM для работы с Excel. Ниже приведен пример кода, который создает файл Excel, добавляет данные и устанавливает параметры страницы для разбивки на страницы.
1C Попытка // Создаем объект Excel Excel = Новый COMОбъект("Excel.Application"); Excel.Visible = Ложь; // Скрываем Excel // Создаем новую книгу Workbook = Excel.Workbooks.Add(); Лист = Workbook.Worksheets(1); // Заполняем данные Для НомерСтроки = 1 По 100 Цикл Лист.Cells(НомерСтроки, 1).Value = "Данные " + НомерСтроки; КонецЦикла; // Устанавливаем параметры страницы Лист.PageSetup.Orientation = 2; // Альбомная ориентация Лист.PageSetup.LeftMargin = Excel.CentimetersToPoints(2); Лист.PageSetup.RightMargin = Excel.CentimetersToPoints(2); Лист.PageSetup.TopMargin = Excel.CentimetersToPoints(2); Лист.PageSetup.BottomMargin = Excel.CentimetersToPoints(2); Лист.PageSetup.FitToPagesWide = 1; // По ширине Лист.PageSetup.FitToPagesTall = 0; // Не ограничиваем по высоте // Добавляем разрывы страниц Для НомерСтроки = 1 По 100 Цикл Если НомерСтроки % 50 = 0 Тогда // Каждые 50 строк Лист.HPageBreaks.Add(Лист.Rows(НомерСтроки + 1)); КонецЕсли; КонецЦикла; // Сохраняем файл ПолноеИмяФайла = "C:ТестовыйФайл.xlsx"; Workbook.SaveAs(ПолноеИмяФайла); Workbook.Close(); Excel.Quit(); Сообщить("Файл успешно создан: " + ПолноеИмяФайла); Исключение Сообщить("Ошибка: " + ОписаниеОшибки()); КонецПопытки;В этом коде:
— Создается новый файл Excel и заполняется данными.
— Устанавливаются параметры страницы, такие как ориентация и поля.
— Добавляются разрывы страниц каждые 50 строк.
— Файл сохраняется по указанному пути.Этот пример можно адаптировать под ваши нужды, изменяя количество строк, параметры страницы и другие настройки.
13 февраля 2025 в 9:00 в ответ на: С какими флагами тестировать исправление базы после обрезки? #31588Рекомендуется производить тестирование и исправление информационной базы с установленными следующими флагами:
1. **Проверка логической целостности** — для выявления и исправления логических ошибок в структуре таблиц.
2. **Проверка ссылочной целостности** — для проверки связей между объектами и устранения «несуществующих» данных.
3. **Реструктуризация** — для оптимизации структуры базы данных.
4. **Реиндексация** — для улучшения производительности запросов.
5. **Очищать ссылки** — для удаления неиспользуемых ссылок на объекты.
6. **Удалять данные объекты** — для удаления ненужных данных.Эти действия помогут обеспечить корректное состояние базы данных после обрезки.
13 февраля 2025 в 9:00 в ответ на: Как снять флажки или удалить объекты бизнес-процессов в 1С? #31586Для работы с бизнес-процессами в конфигураторе 1С:Предприятие, если вам необходимо снять флажки или удалить объекты, связанные с бизнес-процессами, следует учитывать следующие моменты:
1. **Снятие флажков**:
— Перейдите в раздел «Конфигурация» -> «Поддержка» -> «Настройка поддержки».
— Убедитесь, что у вас есть возможность редактирования конфигурации.
— В настройках поддержки можно снять флажки, которые отвечают за автоматическое обновление объектов, связанных с бизнес-процессами. Это может быть флажок «Объект поставщика редактируется с сохранением поддержки».2. **Удаление объектов**:
— В дереве объектов конфигурации найдите объекты, связанные с бизнес-процессами (например, «Бизнес-процессы», «Процедуры», «Сценарии»).
— Выделите нужные объекты и используйте контекстное меню (правый клик) для выбора опции «Удалить».
— Убедитесь, что удаление объектов не повлияет на другие части конфигурации, так как это может вызвать ошибки.3. **Проверка зависимостей**:
— Перед удалением объектов рекомендуется проверить зависимости, чтобы избежать нарушения работы других функциональностей конфигурации.4. **Резервное копирование**:
— Перед внесением изменений, особенно удаления объектов, рекомендуется создать резервную копию конфигурации.Эти действия помогут вам управлять объектами, связанными с бизнес-процессами, в конфигураторе 1С.
Для создания коллекции свойств XDTO в 1С:Предприятие, вам нужно использовать класс `КоллекцияСвойствXDTO`. Этот класс позволяет управлять набором свойств, которые могут быть использованы в ваших XDTO-объектах.
Вот пример кода, который демонстрирует, как создать и заполнить `КоллекцияСвойствXDTO`:
1C // Создаем новую коллекцию свойств XDTO КоллекцияСвойств = Новый КоллекцияСвойствXDTO(); // Создаем новое свойство НовоеСвойство = КоллекцияСвойств.Добавить(); НовоеСвойство.Имя = "ИмяСвойства"; // Устанавливаем имя свойства НовоеСвойство.Тип = ТипЗначенияXDTO.Строка; // Устанавливаем тип свойства // Добавляем еще одно свойство НовоеСвойство2 = КоллекцияСвойств.Добавить(); НовоеСвойство2.Имя = "Возраст"; НовоеСвойство2.Тип = ТипЗначенияXDTO.Число; // Теперь можно использовать коллекцию свойств в XDTO-объектах
В этом примере мы создали коллекцию свойств, добавили в нее два свойства с именами «ИмяСвойства» и «Возраст», и задали им соответствующие типы.
Таким образом, `КоллекцияСвойствXDTO` позволяет вам динамически управлять набором свойств, которые могут быть использованы в ваших XDTO-объектах.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/171019/
12 февраля 2025 в 17:30 в ответ на: Как создать обработку для удаления номенклатуры без штрихкодов в 1С? #315821C &НаСервере Процедура УдалитьНоменклатуруБезШтрихкодов(ГруппаНоменклатуры) // Проверяем, что группа номенклатуры выбрана Если ГруппаНоменклатуры = Неопределено Тогда Сообщить("Не выбрана группа номенклатуры."); Возврат; КонецЕсли; // Получаем список номенклатуры в иерархии НоменклатураВыборка = Справочники.Номенклатура.ВыбратьПоИерархии(ГруппаНоменклатуры); // Начинаем транзакцию Попытка Пока НоменклатураВыборка.Следующий() Цикл // Проверяем наличие штрихкодов в регистре сведений Запрос = Новый Запрос("ВЫБРАТЬ | ШтрихкодыДокументов.Штрихкод | ИЗ | РегистрСведений.ШтрихкодыДокументов КАК ШтрихкодыДокументов | ГДЕ | ШтрихкодыДокументов.Номенклатура = &Номенклатура"); Запрос.УстановитьПараметр("Номенклатура", НоменклатураВыборка.Ссылка); Результат = Запрос.Выполнить(); // Если штрихкодов нет, удаляем номенклатуру Если Результат.Пустой() Тогда НоменклатураВыборка.Удалить(); КонецЕсли; КонецЦикла; Сообщить("Удаление завершено."); Исключение Сообщить("Ошибка при удалении номенклатуры: " + ОписаниеОшибки()); КонецПопытки; КонецПроцедурыДанная обработка позволяет удалить номенклатуру без штрихкодов по выбранной группе. Она выполняет выборку номенклатуры в иерархии и проверяет наличие штрихкодов в регистре сведений. Если штрихкодов нет, то номенклатура удаляется.
12 февраля 2025 в 16:30 в ответ на: Как создать обработку для удаления номенклатуры без штрихкодов по группе? #31580Привет, Сергей! Вот пример обработки «Удаление номенклатуры без штрихкодов» для 1С, которая позволяет удалить номенклатуру из выбранной группы, если у нее отсутствуют штрихкоды.
1C &НаСервере Процедура УдалитьНоменклатуруБезШтрихкодов(ГруппаНоменклатуры) // Проверяем, что группа номенклатуры выбрана Если Не ЗначениеЗаполнено(ГруппаНоменклатуры) Тогда Сообщить("Не выбрана группа номенклатуры.", СтатусСообщения.Ошибка); Возврат; КонецЕсли; // Создаем запрос для получения номенклатуры без штрихкодов Запрос = Новый Запрос; Запрос.Текст = " ВЫБРАТЬ Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.ЭтоГруппа = Ложь И Номенклатура.Группа = &ГруппаНоменклатуры И Номенклатура.Штрихкод = Неопределено"; Запрос.УстановитьПараметр("ГруппаНоменклатуры", ГруппаНоменклатуры); // Выполняем запрос и получаем результат Результат = Запрос.Выполнить(); Если Результат.Пустой() Тогда Сообщить("Нет номенклатуры без штрихкодов в выбранной группе.", СтатусСообщения.Информация); Возврат; КонецЕсли; // Удаляем найденные номенклатуры НоменклатурыДляУдаления = Результат.ВыгрузитьКолонку("Ссылка"); Для Каждого Номенклатура Из НоменклатурыДляУдаления Цикл Номенклатура.Удалить(); КонецЦикла; Сообщить("Удаление завершено. Удалено " + НоменклатурыДляУдаления.Количество() + " номенклатур.", СтатусСообщения.Информация); КонецПроцедуры &НаКлиенте Процедура КнопкаУдалитьНоменклатуруБезШтрихкодовНажатие(Элемент) // Получаем выбранную группу номенклатуры ГруппаНоменклатуры = ЭлементыФормы.ВыборГруппыНоменклатуры.Значение; // Вызываем серверную процедуру для удаления УдалитьНоменклатуруБезШтрихкодов(ГруппаНоменклатуры); КонецПроцедуры### Описание:
1. **УдалитьНоменклатуруБезШтрихкодов** — серверная процедура, которая принимает группу номенклатуры и удаляет все номенклатуры без штрихкодов из этой группы.
2. **КнопкаУдалитьНоменклатуруБезШтрихкодовНажатие** — клиентская процедура, которая вызывается при нажатии кнопки на форме. Она получает выбранную группу и вызывает серверную процедуру.### Как использовать:
1. Создайте новую обработку в 1С.
2. Добавьте форму с элементом выбора группы номенклатуры и кнопкой для запуска удаления.
3. Вставьте предложенный код в модуль обработки.Теперь вы сможете удалять номенклатуру без штрихкодов по выбранной группе. Если у вас есть дополнительные требования или вопросы, дайте знать!
12 февраля 2025 в 16:30 в ответ на: Почему ключ ЭП не действует на дату подписания в УТ 11.5.20.93? #31578Привет, Тарас!
Причины, по которым подпись или сертификат не прошли проверку, могут быть следующими:
1. **Истечение срока действия сертификата**: Если сертификат электронной подписи истек, то он не будет действителен на дату подписания. Проверьте срок действия сертификата.
2. **Отзыв сертификата**: Сертификат мог быть отозван удостоверяющим центром. Это можно проверить через список отозванных сертификатов (CRL).
3. **Несоответствие алгоритмов**: Если используется устаревший алгоритм подписи, это может привести к проблемам с проверкой. Убедитесь, что используемые алгоритмы соответствуют современным требованиям.
4. **Проблемы с настройками системы**: Возможно, в настройках программы «Управление торговлей» не указаны актуальные корневые сертификаты удостоверяющего центра, который выдал сертификат.
5. **Ошибки в настройках времени**: Если на компьютере неверно установлено время или дата, это может повлиять на проверку сертификата.
6. **Проблемы с программным обеспечением**: Убедитесь, что используемая версия «Управление торговлей» обновлена и не содержит известных ошибок, связанных с проверкой подписи.
Рекомендую проверить все вышеперечисленные пункты, чтобы выявить причину проблемы. Если проблема не решается, возможно, стоит обратиться в техническую поддержку вашего удостоверяющего центра или разработчиков программы.
Если у вас есть дополнительные вопросы, не стесняйтесь спрашивать!
12 февраля 2025 в 16:30 в ответ на: Как загрузить данные из М-Аптека в 1C ERP: есть ли готовые решения? #31576Для загрузки данных из системы М-Аптека в 1С ERP можно использовать несколько подходов, в зависимости от доступных интерфейсов и форматов данных. Вот несколько рекомендаций и best practices:
1. **Использование API**: Если М-Аптека предоставляет API (например, REST или SOAP), вы можете написать обработку в 1С, которая будет обращаться к этому API для получения данных. Это наиболее гибкий и современный способ интеграции.
Пример кода для обращения к API:
1C HTTPСоединение = Новый HTTPСоединение("https://api.m-apteka.ru"); Запрос = Новый HTTPЗапрос(); Запрос.УстановитьМетод("GET"); Запрос.УстановитьЗаголовок("Authorization", "Bearer " + Токен); Ответ = HTTPСоединение.Отправить(Запрос); Если Ответ.КодСостояния = 200 Тогда Данные = Ответ.ПолучитьТелоКакСтроку(); // Обработка данных КонецЕсли;2. **Импорт данных через файлы**: Если API недоступен, можно использовать экспорт данных из М-Аптека в формате CSV или Excel, а затем импортировать эти данные в 1С. Для этого можно использовать стандартные механизмы 1С для загрузки данных из файлов.
Пример загрузки данных из CSV:
1C Файл = Новый Файл("C:pathtofile.csv"); Чтение = Новый ТекстовыйДокумент(); Чтение.Прочитать(Файл); Данные = Чтение.ПолучитьТекст(); // Обработка данных3. **Готовые решения**: На рынке могут быть готовые решения для интеграции 1С с М-Аптека. Рекомендуется обратиться к разработчикам, которые специализируются на интеграции 1С с различными системами, или на платформы, такие как Infostart, где можно найти готовые модули и решения.
4. **Best Practices**:
— **Документация**: Всегда изучайте документацию как 1С, так и М-Аптека для понимания форматов данных и доступных методов интеграции.
— **Тестирование**: Перед запуском интеграции на рабочей базе, протестируйте все процессы на тестовой базе, чтобы избежать потери данных.
— **Логирование**: Реализуйте логирование всех операций загрузки данных для упрощения отладки и мониторинга.
— **Обработка ошибок**: Обязательно обрабатывайте возможные ошибки при загрузке данных, чтобы избежать сбоев в работе системы.Если вам нужны конкретные примеры кода или готовые модули, рекомендую обратиться на специализированные форумы или к разработчикам, которые уже реализовывали подобные интеграции.
12 февраля 2025 в 13:30 в ответ на: Как решить ошибку недостаточных прав при эквайринговой операции в 1С УТ? #31574Для решения проблемы с ошибкой «У пользователя недостаточно прав на исполнение операции над базой данных 1С 8.3 УТ» при создании эквайринговой операции, выполните следующие шаги:
1. **Проверка прав пользователя**:
— Убедитесь, что у пользователя, под которым вы работаете, есть необходимые права на выполнение операций с эквайрингом. Для этого зайдите в конфигуратор и проверьте настройки прав доступа для данного пользователя или группы пользователей.2. **Настройка прав доступа**:
— Откройте конфигуратор, перейдите в раздел «Пользователи» и выберите нужного пользователя.
— Проверьте, что у пользователя есть доступ к объектам, связанным с эквайрингом, таким как «Заказ клиента», «Эквайринговая операция» и т.д.
— Убедитесь, что у пользователя есть права на запись и изменение данных в соответствующих справочниках и документах.3. **Проверка ролей**:
— Убедитесь, что у пользователя назначены все необходимые роли, которые могут включать права на работу с эквайрингом. Если необходимо, добавьте роль, которая предоставляет доступ к эквайринговым операциям.4. **Обновление конфигурации**:
— Если права настроены правильно, но ошибка все равно возникает, попробуйте обновить конфигурацию до последней версии. Возможно, в предыдущих версиях были ошибки, которые были исправлены в обновлениях.5. **Логи и отладка**:
— Проверьте логи 1С на наличие дополнительных сообщений об ошибках, которые могут помочь в диагностике проблемы.
— Если у вас есть доступ к отладчику, попробуйте запустить процесс создания эквайринговой операции в режиме отладки, чтобы увидеть, на каком этапе возникает ошибка.6. **Обращение к администратору**:
— Если вы не обладаете достаточными правами для изменения настроек, обратитесь к администратору системы для получения помощи в настройке прав доступа.Следуя этим шагам, вы сможете устранить проблему с недостаточными правами для выполнения эквайринговой операции.
12 февраля 2025 в 6:00 в ответ на: Как создать напоминание через год после проведения документа в 1С? #31572Для того чтобы создать напоминание пользователю о действии через год после проведения документа в 1С:Предприятии, вам нужно выполнить следующие шаги:
1. **Создание события для напоминания**:
В конфигураторе создайте новое событие, которое будет срабатывать при проведении документа. Например, назовите его «НапоминаниеПоДокументу».2. **Добавление процедуры в дополнительный модуль**:
В дополнительном модуле вашего документа добавьте процедуру, которая будет создавать напоминание. Пример кода:1C Процедура НапоминаниеПоДокументу(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда // Создаем новое событие Событие = Документы.Событие.Создать(); Событие.Дата = Источник.Дата + 365; // Устанавливаем дату напоминания через год Событие.Ответственный = Источник.Ответственный; // Указываем ответственного Событие.Описание = "Напоминание о действии по документу " + Источник.Наименование; // Описание напоминания Событие.Записать(); // Сохраняем событие КонецЕсли; КонецПроцедуры3. **Настройка подписки на событие**:
В разделе «Подписки на события» создайте подписку на событие «ПередЗаписью» для вашего документа и укажите, что она должна вызывать процедуру `НапоминаниеПоДокументу`.4. **Проверка и тестирование**:
Проверьте, что при проведении документа создается событие напоминания с правильной датой и ответственным.Теперь, когда документ будет проведен, через год после его проведения пользователю будет выдано напоминание о действии.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/102799/
-
АвторСообщения