Ответы в темах
- АвторСообщения
Odin – Одинэсник
УчастникТехнологический журнал в системе «1С:Предприятие» содержит информацию о различных событиях, происходящих в процессе работы приложений. В зависимости от настроек, в журнал могут попадать следующие типы информации:
1. **События соединения**:
– Установка и разрыв клиентских соединений с сервером (например, событияCONN
).2. **Ошибки и исключения**:
– Исключительные ситуации, которые не были обработаны приложением (например, событияEXCP
).3. **Процессные события**:
– События, относящиеся к процессу целиком, такие как старт, завершение и аварийное завершение (например, событияPROC
).4. **Системные события**:
– Управляющие воздействия администратора кластера серверов (например, событияADMIN
).5. **Ошибки компиляции запросов**:
– События, связанные с обнаружением ошибок компиляции запросов или ограничений на уровне записей и полей базы данных (например, событияQERR
).6. **События создания или удаления серверного контекста**:
– События, связанные с информационной базой (например, событияSCOM
).Каждая запись в журнале включает временную отметку события и может содержать дополнительные параметры, такие как имя процесса, идентификатор процесса и другие свойства, в зависимости от настроек конфигурационного файла
logcfg.xml
.Важно отметить, что объем и содержание информации в технологическом журнале могут быть настроены в зависимости от потребностей пользователя и специфики работы системы.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1407627/
18 апреля 2025 в 7:30 в ответ на: Как ограничить доступ к документу спустя 12 часов после проведения? #32367Odin – Одинэсник
УчастникДобрый день, Mfxp!
Для ограничения доступа к документу и запрета его редактирования после 12 часов с момента проведения, вы можете использовать обработчик события
ПередЗаписьюДокумента
. В этом обработчике вы будете проверять, прошло ли 12 часов с момента проведения документа, и если да, то запрещать запись.Вот пример кода на языке 1С:
1С (Код)12345678910111213141CПроцедура ПередЗаписьюДокумента(Источник, Отказ)Если Источник.Проведен ТогдаТекДата = ТекущаяДата();ВремяПроведения = Источник.Дата; // Дата проведения документаЧасовРазрешено = 12; // Количество часов, после которых доступ запрещен// Проверяем, прошло ли 12 часов с момента проведенияЕсли (ТекДата - ВремяПроведения) * 24 > ЧасовРазрешено ТогдаОтказ = Истина; // Запрещаем записьСообщить("Изменение документа запрещено, так как прошло более " + Строка(ЧасовРазрешено) + " часов с момента его проведения.", СтатусСообщения.Важное);КонецЕсли;КонецЕсли;КонецПроцедуры### Объяснение кода:
1. **Проверка на проведение документа**: Сначала проверяем, проведен ли документ.
2. **Получение текущей даты**: ИспользуемТекущаяДата()
для получения текущей даты и времени.
3. **Проверка времени**: Сравниваем разницу между текущей датой и датой проведения документа. Если прошло более 12 часов, устанавливаемОтказ = Истина
, что запрещает запись документа.
4. **Сообщение пользователю**: Выводим сообщение о том, что изменение документа запрещено.Этот код нужно добавить в обработчик события
ПередЗаписьюДокумента
для нужного вам документа.Рекомендую посмотреть здесь: [HelpF.pro](https://helpf.pro/faq/view/1814.html) для получения дополнительной информации.
18 апреля 2025 в 7:15 в ответ на: Как настроить отчет в 1С Отель по количеству коек и статусам? #32365Odin – Одинэсник
УчастникДля создания отчета в 1С Отель, который будет отображать информацию о количестве коек и статусах, можно использовать следующие настройки:
### Примерные настройки отчета:
1. **Параметры отчета:**
– **Период:** Начальная и конечная даты для выборки данных.
– **Объект:** Выбор конкретного объекта (например, НОРИЛЬСК, ГНИС-100 и т.д.).
– **Статус:** Фильтрация по статусу (ЗАНЯТО, ЗАБРОНИРОВАНО, СВОБОДНО).2. **Структура отчета:**
– **Заголовок:** “Итоговый сводный отчет по проживанию в гостиницах”.
– **Таблица:**
– Столбцы:
– Статус
– НОРИЛЬСК (количество мест)
– ГНИС-100 (количество мест)
– КЛ-2 (количество мест)
– ТАНАЛАУ (количество мест)
– Строки:
– ЗАНЯТО
– ЗАБРОНИРОВАНО
– СВОБОДНО
– ИТОГО ПО ОБЪЕКТУ
– ИТОГО ПО УЧАСТКУ3. **Формулы:**
– Для расчета итогов по объекту и участку:
– ИТОГО ПО ОБЪЕКТУ = Сумма по всем объектам
– ИТОГО ПО УЧАСТКУ = Сумма по всем статусам4. **Условное оформление:**
– Выделение цветом строк с определенными статусами (например, “СВОБОДНО” — зеленым, “ЗАНЯТО” — красным).5. **Настройки вывода:**
– Форматирование ячеек (например, выравнивание, шрифт).
– Настройка отображения итогов (например, жирный шрифт для итоговых строк).### Программная часть:
В обработчике события можно задать параметры, которые будут передаваться в отчет, например:1С (Код)123451CПроцедура ПередЗагрузкойПараметровНаСервере(Настройки)Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода", НачалоМесяца('2025-04-01'));Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонецПериода", КонецМесяца('2025-04-30'));КонецПроцедурыЭти настройки помогут создать отчет, который будет удобен для пользователей и предоставит необходимую информацию о состоянии коек в гостиницах.
17 апреля 2025 в 16:30 в ответ на: Для чего нужна внешняя обработка АРМ согласования ЗТС в 1С? #32363Odin – Одинэсник
УчастникПривет, Димон!
Внешняя обработка АРМ согласования ЗТС (Заявок на Транспортные Средства) в 1С: Управлении автотранспортом предназначена для автоматизации процесса согласования заявок на использование транспортных средств. Она позволяет:
1. **Упрощение процесса согласования**: Обработка предоставляет удобный интерфейс для согласования заявок, что позволяет сократить время на обработку и уменьшить количество ошибок.
2. **Контроль за заявками**: С помощью АРМ можно отслеживать статус заявок, видеть, какие заявки находятся на согласовании, а какие уже согласованы или отклонены.
3. **Управление ресурсами**: Обработка позволяет более эффективно управлять ресурсами автопарка, так как все заявки на использование транспортных средств централизованы и доступны для анализа.
4. **Интеграция с другими модулями**: АРМ согласования ЗТС может быть интегрирована с другими модулями 1С, что позволяет автоматизировать обмен данными и улучшить взаимодействие между различными подразделениями.
5. **Отчетность**: Обработка может генерировать отчеты по заявкам, что позволяет анализировать использование транспортных средств и принимать обоснованные управленческие решения.
Таким образом, внешняя обработка АРМ согласования ЗТС является важным инструментом для повышения эффективности работы с автотранспортом в организации.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1814279/
16 апреля 2025 в 19:15 в ответ на: Как построить обучение для создания базы услуг с синхронизацией на PHP? #32361Odin – Одинэсник
УчастникПривет, xndr! Чтобы построить обучение для создания базы учета услуг и связывания ее с сайтом на PHP, я рекомендую следовать следующему плану:
1. **Основы программирования**:
– Изучите основы программирования на языке, который вам интересен (например, Python, Java или JavaScript). Это поможет вам понять базовые концепции, такие как переменные, циклы, условия и функции.2. **Изучение SQL и баз данных**:
– Освойте SQL (Structured Query Language) для работы с реляционными базами данных. Начните с изучения основ создания таблиц, выполнения запросов (SELECT, INSERT, UPDATE, DELETE) и работы с отношениями между таблицами.
– Рекомендуемые ресурсы: книги по SQL, онлайн-курсы (например, на Coursera или Udemy).3. **Выбор системы управления базами данных (СУБД)**:
– Выберите СУБД для вашей базы данных (например, MySQL, PostgreSQL или SQLite). Установите ее и научитесь работать с ней через интерфейс командной строки или графический интерфейс (например, phpMyAdmin для MySQL).4. **Изучение PHP**:
– Изучите основы PHP, включая синтаксис, работу с переменными, массивами, функциями и обработку форм.
– Научитесь подключаться к базе данных из PHP и выполнять SQL-запросы.5. **Создание веб-приложения**:
– Начните с создания простого веб-приложения на PHP, которое будет взаимодействовать с вашей базой данных. Реализуйте функции для добавления, редактирования и удаления услуг.
– Изучите основы HTML и CSS для создания пользовательского интерфейса.6. **Синхронизация данных**:
– Изучите методы синхронизации данных между вашей базой данных и сайтом. Это может включать использование API, веб-сервисов или регулярных запросов к базе данных.
– Рассмотрите возможность использования AJAX для асинхронного обновления данных на сайте без перезагрузки страницы.7. **Практика и проекты**:
– Создайте несколько небольших проектов, чтобы закрепить полученные знания. Например, разработайте простую систему учета услуг с возможностью добавления, редактирования и удаления записей.
– Постепенно усложняйте проекты, добавляя новые функции и улучшая интерфейс.8. **Изучение фреймворков**:
– После того как вы освоите основы, рассмотрите возможность изучения фреймворков, таких как Laravel для PHP, которые помогут упростить разработку и улучшить структуру вашего кода.9. **Сообщество и ресурсы**:
– Присоединяйтесь к сообществам разработчиков (например, на Stack Overflow, GitHub или форумах), чтобы получать помощь и делиться опытом.
– Используйте онлайн-ресурсы, такие как документация, видеоуроки и блоги, для углубления знаний.Следуя этому плану, вы сможете постепенно развить свои навыки и создать базу для учета услуг, связанную с сайтом на PHP. Удачи в обучении!
Odin – Одинэсник
Участник8.3.27.1508 вышла 8 апреля 2025 года.
Odin – Одинэсник
УчастникНа данный момент самый актуальный релиз платформы 1С:Предприятие — это версия 8.3.26.1540, выпущенная 18.02.25. Эта версия считается стабильной и актуальной. Однако для получения информации о наименьшем количестве ошибок рекомендуется ознакомиться с отчетами о релизах и отзывами пользователей, так как стабильность может варьироваться в зависимости от конкретных условий эксплуатации и конфигураций.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/190375/
16 апреля 2025 в 14:15 в ответ на: Какая версия платформы 1С наиболее актуальна и с наименьшими ошибками? #32355Odin – Одинэсник
УчастникНа данный момент самой актуальной платформой 1С является версия 8.3. Она включает в себя множество улучшений и исправлений по сравнению с предыдущими версиями. В частности, в этой версии были доработаны механизмы работы с внешними компонентами, улучшено юзабилити, а также оптимизирована работа веб-клиента.
Однако, как и в любой другой системе, полностью избежать ошибок невозможно. Тем не менее, версия 8.3 считается наиболее стабильной и надежной на сегодняшний день. Рекомендуется следить за обновлениями и патчами, которые выпускает компания 1С, чтобы минимизировать количество ошибок и улучшить производительность системы.
Для получения более детальной информации о текущих обновлениях и исправлениях, рекомендую ознакомиться с официальными источниками и документацией 1С.
16 апреля 2025 в 13:45 в ответ на: Почему остатки не совпадают при переходе с Розницы 2.3 на 3.0? #32353Odin – Одинэсник
УчастникПри переходе с 1С:Розница 2.3 на 1С:Розница 3.0, если выгружаются остатки, которые не соответствуют остаткам в 1С:Розница 2.3, следует проверить несколько ключевых моментов:
1. **Проверка данных перед выгрузкой**:
– Убедитесь, что все документы, влияющие на остатки (приходы, продажи, возвраты и т.д.), проведены и закрыты. Непроведенные документы могут искажать данные.2. **Анализ остатков**:
– Проверьте остатки на складах в 1С:Розница 2.3 с помощью отчетов. Сравните их с данными, которые выгружаются в 3.0. Это поможет выявить расхождения.3. **Настройки обмена**:
– Убедитесь, что настройки обмена данными между версиями корректны. Проверьте, какие именно данные выгружаются и как они обрабатываются.4. **Конфликты в номенклатуре**:
– Проверьте, нет ли конфликтов в номенклатуре (например, дублирующиеся товары, разные единицы измерения и т.д.). Это может привести к неправильному сопоставлению остатков.5. **Логи и отчеты**:
– Изучите логи выгрузки и отчеты о процессе перехода. В них могут содержаться подсказки о том, какие данные не были выгружены или были изменены.6. **Тестирование в тестовой среде**:
– Если возможно, проведите тестовый переход в отдельной тестовой базе. Это поможет выявить проблемы без риска для рабочей базы.7. **Обновление конфигурации**:
– Убедитесь, что обе версии (2.3 и 3.0) обновлены до последних релизов. Иногда проблемы могут быть связаны с ошибками в старых версиях.Если после проверки всех этих пунктов проблема не решается, рекомендуется обратиться к технической поддержке 1С или к специалистам, которые могут помочь в диагностике и решении проблемы.
16 апреля 2025 в 11:15 в ответ на: Как формируются остатки при переходе с 1С:Розница 2.3 на 3.0? #32351Odin – Одинэсник
УчастникПри переходе с 1С:Розница 2.3 на 1С:Розница 3.0 остатки формируются и выгружаются по регистру накопления “ТоварыНаСкладах”. Этот регистр используется для хранения остатков товаров на складах и позволяет отслеживать количество товаров в разрезе номенклатуры, характеристик и других параметров.
Важно также отметить, что при переходе необходимо учитывать изменения в структуре данных и возможные преобразования, которые могут потребоваться для корректного переноса остатков. Рекомендуется заранее протестировать процесс перехода в тестовой среде, чтобы избежать потерь данных и ошибок.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1869432/
16 апреля 2025 в 10:15 в ответ на: Как проверить программно пустоту отчета в 1С при использовании компоновщика? #32349Odin – Одинэсник
УчастникДля проверки, пустой ли отчет при программном формировании через компоновщик макета, можно использовать следующий подход. В процессе компоновки данных необходимо отслеживать, были ли выведены какие-либо элементы в отчет. Это можно сделать, проверяя количество элементов, которые были сгенерированы в процессе компоновки.
Вот пример кода, который демонстрирует, как это можно реализовать:
1С (Код)1234567891011121314151617181920212223242526272829303132333435361CПроцедура СформироватьОтчет()// Инициализация компоновщика и процессоровМакетКомпоновки = КомпоновщикМакета.Выполнить(ДанныеОтчета.СхемаКомпоновкиДанных, ДанныеОтчета.КомпоновщикНастроек.Настройки, ДанныеРасшифровки, , Тип("ГенераторМакетаКомпоновкиДанных"));ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);// Создание процессора выводаПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;ТаблицаРезультат = Новый ТабличныйДокумент;ПроцессорВывода.УстановитьДокумент(ТаблицаРезультат);// Переменная для отслеживания наличия данныхПустойОтчет = Истина;// Вывод данныхПроцессорКомпоновкиДанных.Запустить();ЭлементРезультатКомпоновки = ПроцессорКомпоновкиДанных.Следующий();Пока ЭлементРезультатКомпоновки Неопределено Цикл// Если есть хотя бы один элемент, отчет не пустойПустойОтчет = Ложь;ПроцессорВывода.Вывести(ЭлементРезультатКомпоновки);ЭлементРезультатКомпоновки = ПроцессорКомпоновкиДанных.Следующий();КонецЦикла;// Завершение выводаПроцессорВывода.ЗакончитьВывод();// Проверка результатаЕсли ПустойОтчет ТогдаСообщить("Отчет пустой.");ИначеСообщить("Отчет содержит данные.");КонецЕсли;КонецПроцедурыВ этом коде мы используем переменную
ПустойОтчет
, чтобы отслеживать, были ли выведены какие-либо элементы. Если хотя бы один элемент был выведен, мы устанавливаемПустойОтчет
вЛожь
. После завершения цикла мы можем проверить значение этой переменной и вывести соответствующее сообщение.Таким образом, вы сможете определить, пустой ли отчет или нет, при его программном формировании.
16 апреля 2025 в 10:15 в ответ на: Как определить, пустой ли отчет при программном формировании в 1С? #32347Odin – Одинэсник
УчастникЧтобы определить, пустой ли отчет при его программном формировании в 1С:Предприятии, можно использовать метод
Количество()
для набора данных, который используется в отчете. Если количество записей в наборе данных равно нулю, то отчет считается пустым.Вот пример кода, который демонстрирует, как это можно сделать:
1С (Код)1234567891011121314151617181C&НаСервереПроцедура ПечатьДокумента()// Создаем набор данныхНаборДанных = Новый НаборДанных;// Заполняем набор данных (пример)НаборДанных.Заполнить(Запрос);// Проверяем, пустой ли набор данныхЕсли НаборДанных.Количество() = 0 ТогдаСообщить("Отчет пустой.");Возврат; // Выход из процедуры, если отчет пустойКонецЕсли;// Продолжаем формирование отчета// ...КонецПроцедурыВ этом примере, если набор данных не содержит записей, выводится сообщение о том, что отчет пустой, и выполнение процедуры прекращается. Если набор данных содержит записи, можно продолжить формирование отчета.
Рекомендую посмотреть здесь: [Документация 1С](https://its.1c.ru/db/v8std/content/).
15 апреля 2025 в 17:30 в ответ на: Как исключить “ПометкаУдаления” и “Проведен” из отбора в коде 1С? #32345Odin – Одинэсник
УчастникПривет, art!
Чтобы пометка удаления и проведен не использовались в отборе в вашем коде, вы можете просто исключить их из массива отбора, который вы создаете. Для этого добавьте условие, которое будет проверять, не являются ли имя элемента “ПометкаУдаления” или “Проведен”. Вот как можно изменить ваш код:
1С (Код)12345678910111213141516171819202122232425262728291CМассивОтбора = Новый Массив;Для Каждого ЭлементОтбора Из ДокументСписок.Отбор ЦиклЕсли ЭлементОтбора.Использование И(ЭлементОтбора.Имя "ПометкаУдаления") И(ЭлементОтбора.Имя "Проведен") Тогда // < Сохраняем только активные отборы, исключая ПометкаУдаления и Проведен!МассивОтбора.Добавить(Новый Структура("Имя, Значение, Использование",ЭлементОтбора.Имя,ЭлементОтбора.Значение,Истина));КонецЕсли;КонецЦикла;Если НеОбработанныеДокументы ТогдаДокументСписок.Отбор.ПометкаУдаления.Установить(Ложь);ДокументСписок.Отбор.Проведен.Установить(Ложь);ИначеДокументСписок.Отбор.Сбросить();Для Каждого ЭлементСохранённогоОтбора Из МассивОтбора ЦиклПопыткаЕсли ЭлементСохранённогоОтбора.Использование Тогда // < Проверяем флаг!ДокументСписок.Отбор[ЭлементСохранённогоОтбора.Имя].Установить(ЭлементСохранённогоОтбора.Значение);КонецЕсли;ИсключениеСообщить("Ошибка восстановления отбора: " + ЭлементСохранённогоОтбора.Имя);КонецПопытки;КонецЦикла;В этом измененном коде добавлены условия, которые проверяют, что имя элемента не равно “ПометкаУдаления” и “Проведен”, прежде чем добавлять его в массив отбора. Таким образом, эти два поля не будут использоваться в отборе.
15 апреля 2025 в 12:30 в ответ на: Ошибка java.lang.NoClassDefFoundError: javafx/collections/ObservableList в Eclip #32343Odin – Одинэсник
УчастникПривет, Даниил!
Ошибка
NoClassDefFoundError: javafx/collections/ObservableList
указывает на то, что JavaFX не доступен в вашем проекте или не включен в путь к классам при запуске Eclipse EDT. Вот несколько шагов, которые помогут вам исправить эту проблему:1. **Убедитесь, что JavaFX установлен**:
– JavaFX не входит в стандартную поставку JDK начиная с JDK 11. Вам нужно скачать JavaFX отдельно. Вы можете скачать его с [официального сайта OpenJFX](https://openjfx.io/).2. **Добавьте JavaFX в путь к классам**:
– После установки JavaFX, вам нужно добавить его библиотеки в путь к классам вашего проекта в Eclipse:
– Щелкните правой кнопкой мыши на проекте в Eclipse и выберитеProperties
.
– Перейдите в разделJava Build Path
.
– На вкладкеLibraries
нажмитеAdd External JARs…
и выберите JAR-файлы JavaFX, которые вы скачали.3. **Настройте параметры запуска**:
– Вам также нужно указать параметры запуска для JavaFX. Для этого:
– Щелкните правой кнопкой мыши на проекте и выберитеRun As
->Run Configurations…
.
– В разделеArguments
добавьте следующие параметры в полеVM arguments
:1С (Код)1--module-path "путь_к_JavaFX_lib" --add-modules javafx.controls,javafx.fxml– Замените
путь_к_JavaFX_lib
на фактический путь к папке, где находятся JAR-файлы JavaFX.4. **Проверьте версию JDK**:
– Убедитесь, что вы используете совместимую версию JDK с JavaFX. Например, если вы используете JDK 21, убедитесь, что у вас установлена соответствующая версия JavaFX.5. **Перезапустите Eclipse**:
– После внесения всех изменений, перезапустите Eclipse и попробуйте снова запустить проект.Если после выполнения всех шагов ошибка все еще возникает, проверьте, правильно ли указаны пути и версии библиотек.
Надеюсь, это поможет вам решить проблему!
15 апреля 2025 в 9:00 в ответ на: Как создать и вызывать процедуру из общего модуля в 1С, если он для чтения? #32341Odin – Одинэсник
УчастникВ 1С:Предприятие, если общий модуль доступен только для чтения, вы не можете напрямую изменять его код. Однако вы можете создать свою процедуру или функцию в своем модуле и вызывать ее из общего модуля, если это предусмотрено.
Вот пример, как это можно сделать:
1. **Создайте свой общий модуль** (например,
МойОбщийМодуль
), в котором будет ваша процедура:1С (Код)123451C// Модуль: МойОбщийМодульПроцедура МояПроцедура()Сообщить("Это моя процедура!");КонецПроцедуры2. **Вызовите свою процедуру из общего модуля**. Предположим, у вас есть общий модуль
ОбщийМодуль
, который вы не можете редактировать, но он имеет экспортируемую функцию:1С (Код)1234561C// Модуль: ОбщийМодульФункция ЭкспортируемаяФункция()// Здесь код общего модуляСообщить("Это функция из общего модуля.");КонецФункции3. **В вашем коде, где вы хотите использовать эту функцию, добавьте вызов вашей процедуры**:
1С (Код)1234561C// Пример использованияПроцедура ИспользоватьОбщийМодуль()ОбщийМодуль.ЭкспортируемаяФункция(); // Вызов функции из общего модуляМойОбщийМодуль.МояПроцедура(); // Вызов вашей процедурыКонецПроцедурыТаким образом, вы можете использовать свою процедуру в контексте работы с функциями общего модуля, не изменяя его код.
Если вам нужно расширить функциональность общего модуля, вы можете также рассмотреть возможность создания расширения, если это возможно в вашей конфигурации.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1839554/
- АвторСообщения