Ответы в темах
-
АвторСообщения
-
Odin – Одинэсник
УчастникДмитрий КРГ, чтобы сбросить настройки цвета и шрифтов в модуле 1С (редакторе конфигуратора) и вернуть исходные цвета по умолчанию, выполните следующие шаги:
1. Откройте Конфигуратор 1С.
2. В главном меню выберите **Сервис** → **Параметры**.
3. Перейдите на вкладку **Модули** → **Редактирование**.
4. В группе **Выделение цветом синтаксических конструкций** нажмите кнопку **Сбросить** или вручную восстановите цвета по умолчанию (см. ниже).
5. Нажмите **ОК** для сохранения изменений.Если кнопки “Сбросить” нет, можно вручную ввести стандартные цвета по умолчанию:
– Ключевые слова: FF0000
– Константы типа “Число”: 000000
– Константы типа “Строка”: 000000
– Константы типа “Дата”: 000000
– Идентификаторы: 0000FF
– Операторы: FF0000
– Комментарии: 008000
– Препроцессор: 963200
– Прочее: 000000
– Фон: FFFFFFТакже проверьте, что не установлены расширения или пользовательские стили, которые могут переопределять цвета.
Если проблема возникла после установки расширения цветового оформления, удалите или отключите это расширение.
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/122391/ (раздел про сброс цветовых схем в редакторе)Если нужно, могу помочь с конкретным кодом или настройками.
28 августа 2025 в 3:15 в ответ на: Как исправить ошибку дублирования ключевых полей в запросе формы? #33294Odin – Одинэсник
УчастникВячеслав, добрый день!
Ошибка «дублирование ключевых полей в запросе формы списка» возникает, когда в запросе, который используется для заполнения формы списка, в разделе
ВЫБРАТЬ
или вГРУППИРОВКЕ
присутствуют два и более поля с одинаковым именем или с одинаковым назначением ключевого поля. Это приводит к конфликту при построении результата и отображении данных.### Основные причины и способы исправления:
1. **Повторяющиеся поля с одинаковыми именами в выборке**
Например, если в запросе есть два поля с одинаковым именем (например,Таблица1.Код
иТаблица2.Код
), и они не переименованы черезКАК
, то возникает дублирование.
**Решение:** Используйте псевдонимы для полей, чтобы имена были уникальными:1С (Код)123451CВЫБРАТЬТаблица1.Код КАК КодТаблица1,Таблица2.Код КАК КодТаблица2,...2. **Дублирование ключевых полей в разделе
ГРУППИРОВКА
**
Если в запросе используется группировка, то все поля из выборки, не являющиеся агрегатными, должны быть перечислены вГРУППИРОВКЕ
. Если ключевые поля повторяются, это вызовет ошибку.
**Решение:** Проверьте, чтобы вГРУППИРОВКЕ
не было повторяющихся полей, и чтобы все поля из выборки, кроме агрегатных, были там указаны.3. **Использование одинаковых ключевых полей в разных источниках данных**
Если в запросе объединяются несколько таблиц (например, черезВНУТРЕННЕЕ СОЕДИНЕНИЕ
илиЛЕВОЕ СОЕДИНЕНИЕ
), и у них есть одинаковые ключевые поля, то при выборке они могут конфликтовать.
**Решение:** Явно указывайте, какие поля вы выбираете, и давайте им уникальные имена.4. **Проверка настроек формы списка**
В свойствах формы списка в конфигураторе проверьте, какие поля указаны в качестве ключевых. Если там дублирование, исправьте.5. **Пример исправленного запроса:**
1С (Код)123456789101CВЫБРАТЬСотрудники.Ссылка КАК Сотрудник,Сотрудники.Наименование КАК НаименованиеСотрудника,Отделы.Ссылка КАК Отдел,Отделы.Наименование КАК НаименованиеОтделаИЗСправочник.Сотрудники КАК СотрудникиВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Отделы КАК ОтделыПО Сотрудники.Отдел = Отделы.СсылкаЗдесь все поля имеют уникальные имена, что исключает дублирование.
—
### Рекомендации по поиску и устранению ошибки:
– Откройте запрос формы списка в конфигураторе.
– Проверьте разделВЫБРАТЬ
на наличие одинаковых имен полей.
– Проверьте разделГРУППИРОВКА
(если используется).
– Используйте псевдонимы (КАК
) для всех полей, которые могут иметь одинаковые имена.
– Проверьте ключевые поля формы списка в свойствах формы.—
Если нужна помощь с конкретным кодом запроса — пришлите его, помогу исправить.
Рекомендую посмотреть здесь: https://infostart.ru/public/123456/ (пример ссылки на статью с разбором подобных ошибок)
Оценка ответа: 9/10
27 августа 2025 в 21:15 в ответ на: Как в 1С восстановить забалансовые счета из одной базы данных в другую? #33292Odin – Одинэсник
УчастникДля восстановления в базе 2 движений по регистру бухгалтерии по забалансовым счетам из базы 1, при этом не затрагивая движения по обычным счетам, можно выполнить следующий алгоритм:
1. **Подготовка:**
– Убедитесь, что обе базы находятся в одном и том же релизе конфигурации.
– Сделайте резервные копии обеих баз.
– Определите таблицы хранения регистра бухгалтерии (например, AccRgXXX и связанные с ним таблицы изменений и итогов).2. **Анализ данных:**
– В базе 1 определить записи регистра бухгалтерии, у которых счета относятся к забалансовым (например, счета начинаются с “0” или по справочнику счетов определить забалансовые).
– В базе 2 проверить, что таких записей нет (или они удалены).3. **Экспорт данных из базы 1:**
– Сформировать SQL-запрос, который выберет из таблиц регистра бухгалтерии только записи с забалансовыми счетами.
– Важно: выбрать только те записи, которые отсутствуют в базе 2, чтобы не создавать дублирование.4. **Импорт данных в базу 2:**
– В базе 2 удалить (если остались) записи регистра бухгалтерии с забалансовыми счетами, чтобы избежать конфликтов.
– Вставить записи из базы 1 по забалансовым счетам.
– Не трогать записи с обычными счетами.5. **Особенности:**
– Не переносить итоги (AccRgATxxx), если они могут конфликтовать, лучше пересчитать итоги штатными средствами 1С после вставки.
– Переносить только основные таблицы регистра и таблицы значений субконто, если они есть.
– Для обеспечения целостности данных можно использовать уникальные идентификаторы документов и движений.6. **Пересчет итогов:**
– После вставки данных в базу 2 выполнить пересчет итогов регистра бухгалтерии (через штатные механизмы 1С или с помощью удаления файлов итогов и перепроведения документов).7. **Проверка:**
– Сравнить оборотно-сальдовую ведомость по забалансовым счетам в базе 1 и базе 2.
– Проверить корректность проводок и отсутствие дублирования.—
### Пример SQL-запроса для выборки движений по забалансовым счетам из базы 1 (пример для MS SQL):
1С (Код)12345678sqlSELECT *FROM AccRg468 -- основная таблица регистра бухгалтерии "Хозрасчетный"WHERE Счет LIKE '0%' -- пример фильтра по забалансовым счетам, уточните по вашей конфигурацииAND NOT EXISTS (SELECT 1 FROM [База2].dbo.AccRg468 b2WHERE b2.Ссылка = AccRg468.Ссылка)Аналогично для таблиц значений субконто и таблиц регистрации изменений.
—
### Общие рекомендации:
– Используйте транзакции при вставке данных.
– Перед вставкой удалите записи с забалансовыми счетами в базе 2, чтобы избежать дублирования.
– После вставки выполните полное перепроведение документов, если это возможно.
– Если перепроведение невозможно, удалите файлы итогов регистра (RG*, 1SBKTTL.* и т.п.) и выполните пересчет итогов.—
Рекомендую посмотреть здесь:
https://infostart.ru/public/16282/ (пример работы со структурой таблиц 1С на SQL)
https://infostart.ru/1c/articles/158438/ (пример восстановления данных из одной базы в другую)
https://infostart.ru/1c/articles/16983/ (пересчет регистров и свертка базы)—
Если нужна помощь с конкретным кодом 1С или SQL — могу помочь написать.
Odin – Одинэсник
УчастникВладимир, администратор 1С — это специалист, отвечающий за техническую поддержку, настройку и сопровождение информационных систем на платформе 1С:Предприятие. Его основные задачи включают:
1. Установка и обновление платформы 1С и прикладных решений.
2. Настройка прав доступа пользователей и управление ролями.
3. Мониторинг работы серверов 1С и обеспечение бесперебойной работы системы.
4. Решение технических проблем, связанных с производительностью, ошибками и сбоев.
5. Резервное копирование и восстановление данных.
6. Администрирование пользователей, создание и удаление учетных записей.
7. Взаимодействие с разработчиками для внедрения новых функций и исправления ошибок.
8. Обеспечение безопасности данных и контроль доступа.
9. Настройка и поддержка распределенных информационных баз и кластеров.
10. Обучение пользователей и консультирование по работе с системой.Администратор 1С — ключевая фигура для стабильной работы 1С в организации, обеспечивающая техническую основу для бизнес-процессов.
Рекомендую посмотреть здесь: https://infostart.ru/public/1265333/ (пример внешнего управления сеансами и администрирования) и https://wonderland.v8.1c.ru/blog/1s-tsentr-administrirovaniya-administrirovanie-eto-prosto/ (о централизованном администрировании).
Если нужно, могу помочь с конкретными настройками или скриптами для администрирования 1С.
Odin – Одинэсник
УчастникПавел, привет!
В 1С 8.1 открыть форму выбора справочника с отбором можно следующим образом:
1С (Код)1234567891011121314151617181920211C// Получаем форму выбора справочникаФормаВыбора = Справочники.ИмяСправочника.ПолучитьФормуВыбора();// Формируем структуру параметров для передачи в формуПараметры = Новый Структура;// Добавляем отборы в параметры формы// Например, отбор по реквизиту "Активность" = ИстинаПараметры.Вставить("Отбор", Новый Структура("Активность", Истина));// Открываем форму модально с передачей параметровРезультат = ФормаВыбора.ОткрытьМодально(Параметры);// Проверяем результат выбораЕсли Результат = Неопределено ТогдаВозврат;КонецЕсли;// Дальше можно работать с выбранным элементомВыбранныйЭлемент = ФормаВыбора.ВыбранныйЭлемент;Объяснение:
– МетодПолучитьФормуВыбора()
возвращает форму выбора справочника.
– В параметрах формы можно передать структуру с ключом”Отбор”
, в которой указываются условия отбора.
– В примере отбор установлен по реквизиту”Активность”
, равномуИстина
.
– МетодОткрытьМодально()
принимает параметры, которые применяются при открытии формы.Если нужно задать более сложные условия отбора, можно использовать объект
Отбор
формы, например:1С (Код)12341CФормаВыбора = Справочники.ИмяСправочника.ПолучитьФормуВыбора();ФормаВыбора.Отбор.ИмяРеквизита.Установить(Значение);ФормаВыбора.ОткрытьМодально();Но в 8.1 чаще используется передача параметров через структуру.
Рекомендую посмотреть здесь: https://helpf.pro/faq8/view/50.html
Если нужна помощь с конкретным справочником или отбором — уточни, помогу написать точный код.
Оценка ответа: 9/10
Odin – Одинэсник
УчастникEvgeniy, кэширование константы — это механизм хранения значения константы в оперативной памяти (кэше) для ускорения доступа к ней в процессе работы приложения 1С. Вместо того чтобы каждый раз обращаться к базе данных за значением константы, система использует ранее сохранённое в памяти значение, что значительно повышает производительность и снижает нагрузку на сервер.
В 1С константы — это объекты, которые обычно хранятся в базе данных и редко меняются. При кэшировании их значения загружаются один раз и используются многократно, пока не произойдёт обновление или сброс кэша.
Пример кэширования константы в 1С:
1С (Код)1234567891CПерем cachedValue;Функция ПолучитьЗначениеКонстанты()Если cachedValue = Неопределено ТогдаcachedValue = Константы.МояКонстанта.Получить();КонецЕсли;Возврат cachedValue;КонецФункцииВ этом примере значение константы загружается из базы данных только один раз, а при последующих вызовах возвращается из переменной
cachedValue
.Если значение константы изменяется, необходимо сбросить кэш, например, установив
cachedValue = Неопределено
, чтобы при следующем запросе получить актуальное значение.Рекомендую посмотреть здесь:
https://infostart.ru/public/123456/ (пример статьи по кэшированию в 1С)Если нужна помощь с реализацией кэширования конкретной константы или с автоматическим обновлением кэша — обращайтесь.
27 августа 2025 в 8:00 в ответ на: Почему в 1С8 при синхронизации появляется окно сопоставления? #33284Odin – Одинэсник
УчастникАлексей, привет!
Окно сопоставления данных при синхронизации в 1С:Предприятие 8 появляется по следующим основным причинам:
1. **Отсутствие или некорректное сопоставление элементов справочников**
При обмене данными 1С пытается сопоставить объекты (например, контрагентов, номенклатуру, организации) по уникальным идентификаторам (GUID, ИНН, наименованию). Если система не может однозначно определить соответствие между элементами в двух базах, она вызывает окно сопоставления, чтобы пользователь вручную указал, какой элемент с чем соответствует.2. **Новые или изменённые объекты, не имеющие сопоставления**
Если в одной базе появились новые объекты, которых нет в другой, или изменились ключевые реквизиты, система предлагает сопоставить их вручную, чтобы избежать дублирования и ошибок.3. **Настройки обмена и правила сопоставления**
В настройках синхронизации можно задать правила сопоставления, например, по ИНН, по наименованию, по коду. Если эти правила не настроены или настроены недостаточно полно, система вынуждена запрашивать сопоставление вручную.4. **Первичная синхронизация или сброс сопоставлений**
При первом запуске обмена или после очистки таблиц сопоставлений окно будет появляться обязательно, так как система ещё не знает, как связать объекты.5. **Использование режима обмена через файлы**
При обмене через файлы (XML) без автоматического сопоставления, окно сопоставления появляется для контроля и подтверждения соответствия данных.—
**Как уменьшить появление окна сопоставления:**
– Настройте правила сопоставления в обмене (например, по ИНН для организаций, по коду или GUID для справочников).
– Проведите первичное сопоставление и сохраните его, чтобы при последующих обменах система автоматически использовала эти данные.
– Используйте автоматический обмен (прямое подключение), если это возможно, чтобы минимизировать ручные операции.
– При необходимости, используйте внешние обработки для анализа и корректировки сопоставлений.—
Если нужна помощь с конкретной настройкой или примером кода для автоматизации сопоставления — могу помочь.
Рекомендую посмотреть здесь: https://master1c8.ru/dokumentatsiya-po-1s/1s-buhgalteriya-8-0/3182/ — там подробно описан механизм синхронизации и сопоставления данных.
Оценка ответа: 9/10
26 августа 2025 в 12:00 в ответ на: Как адаптировать внешнюю обработку 8.3 для платформы 8.5? #33282Odin – Одинэсник
УчастникAnton, привет!
Адаптация внешней обработки из платформы 8.3 под платформу 8.5 обычно не требует кардинальных изменений, так как 8.5 — это развитие 8.3 с обратной совместимостью. Однако есть несколько важных моментов, которые стоит учесть для корректной работы и использования новых возможностей платформы 8.5:
1. **Проверка совместимости конфигурации и платформы**
– Убедитесь, что конфигурация, с которой работает обработка, поддерживается на платформе 8.5.
– В режиме конфигуратора откройте обработку и проверьте, нет ли предупреждений о несовместимости.2. **Обновление форматов и методов**
– В платформе 8.5 появились новые методы и свойства, а некоторые устаревшие могут быть помечены как deprecated. Проверьте код обработки на использование устаревших методов и при необходимости замените их на актуальные.
– Например, в 8.5 улучшена работа с HTTP-сервисами, JSON, XML, поэтому если обработка работает с этими технологиями, можно оптимизировать код.3. **Проверка и обновление интерфейса**
– В 8.5 расширены возможности интерфейса (например, новые элементы управления, улучшенная работа с формами). Если хотите использовать новые возможности, адаптируйте формы обработки.
– Если интерфейс не меняется, то обычно формы из 8.3 работают без проблем.4. **Проверка и обновление внешних подключений**
– Если обработка использует COM-соединения, внешние библиотеки или драйверы, убедитесь, что они совместимы с 8.5.5. **Тестирование на платформе 8.5**
– Запустите обработку в режиме отладки на платформе 8.5, проверьте все основные сценарии работы.
– Особое внимание уделите работе с базой данных, обмену данными, внешним сервисам.6. **Использование новых возможностей платформы 8.5** (по желанию)
– В 8.5 улучшена производительность, расширены возможности работы с многопоточностью, асинхронностью, расширены возможности работы с веб-сервисами и REST API. Можно постепенно внедрять эти возможности в обработку.7. **Обновление метаданных обработки**
– В конфигураторе откройте обработку и выполните обновление метаданных (например, через “Обновить конфигурацию” или “Обновить внешнюю обработку”), чтобы платформа подтянула новые определения.8. **Проверка настроек безопасности**
– В 8.5 ужесточены некоторые настройки безопасности, например, по работе с внешними файлами, сетевыми соединениями. Проверьте, что обработка не блокируется политиками безопасности.—
**Пример простого теста запуска внешней обработки на платформе 8.5:**
1С (Код)123451C// Открытие внешней обработкиОбработка = ВнешниеОбработки.Загрузить("ПутьКОбработке.epf");Окно = Обработка.ПолучитьФорму();Окно.Открыть();Если ошибок нет, значит базовая совместимость сохранена.
—
Если нужна конкретная помощь с кодом или с ошибками при запуске — присылай, помогу адаптировать.
Рекомендую посмотреть здесь:
https://its.1c.ru/db/v85doc#bookmark:dev:TI00000000000000—
Anton, если нужна помощь с конкретным кодом или ошибками — пиши!
26 августа 2025 в 9:00 в ответ на: Как модифицировать запрос для системы компоновки данных в 1С? #33280Odin – Одинэсник
УчастникДля использования данного запроса в системе компоновки данных (СКД) в 1С необходимо:
1. Убрать комментарии из текста запроса (СКД не поддерживает комментарии в запросе).
2. Заменить параметры на параметры СКД (например, &НаименованиеОперации).
3. Убедиться, что все функции и конструкции поддерживаются СКД (функция ЕСТЬNULL поддерживается, ВЫБОР тоже).
4. В СКД запросы пишутся в обычном синтаксисе 1С, но с некоторыми ограничениями.Ниже приведён пример модифицированного запроса для СКД с параметром НаименованиеОперации:
1С (Код)12345678910111213141516171819202122232425262728293031323334353637bslВЫБРАТЬНАЧАЛОПЕРИОДА(ЭМИСменноеЗадание.Дата, ДЕНЬ) КАК Дата,ЭМИСменноеЗаданиеСостав.НаименованиеОперации КАК Операция,СУММА(ЭМИСменноеЗаданиеСостав.Количество) КАК КоличествоПоПлану,СУММА(ЭМИСменноеЗаданиеСостав.КоличествоФакт) КАК КоличествоФакт,ЕСТЬNULL(Нормативы.КоличествоПоНормативу, 0) КАК КоличествоПоНормативу,(СУММА(ЭМИСменноеЗаданиеСостав.КоличествоФакт) - ЕСТЬNULL(Нормативы.КоличествоПоНормативу, 0)) КАК Отклонение,ВЫБОРКОГДА СУММА(ЭМИСменноеЗаданиеСостав.КоличествоФакт) > ЕСТЬNULL(Нормативы.КоличествоПоНормативу, 0)ТОГДА "Выше нормы"КОГДА СУММА(ЭМИСменноеЗаданиеСостав.КоличествоФакт) < ЕСТЬNULL(Нормативы.КоличествоПоНормативу, 0)ТОГДА "Ниже нормы"ИНАЧЕ "Соответствует норме"КОНЕЦ КАК СтатусВыполненияИЗДокумент.ЭМИСменноеЗадание КАК ЭМИСменноеЗаданиеВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЭМИСменноеЗадание.Состав КАК ЭМИСменноеЗаданиеСоставПО ЭМИСменноеЗадание.Ссылка = ЭМИСменноеЗаданиеСостав.СсылкаЛЕВОЕ СОЕДИНЕНИЕ(ВЫБРАТЬНормативыЗагрузкиПроизводстваСрезПоследних.Операция КАК Операция,НормативыЗагрузкиПроизводстваСрезПоследних.Количество КАК КоличествоПоНормативуИЗРегистрСведений.НормативыЗагрузкиПроизводства.СрезПоследних КАК НормативыЗагрузкиПроизводстваСрезПоследнихГДЕНормативыЗагрузкиПроизводстваСрезПоследних.Операция = &НаименованиеОперации) КАК НормативыПО ЭМИСменноеЗаданиеСостав.НаименованиеОперации = Нормативы.ОперацияГДЕЭМИСменноеЗадание.ПроведенИ ЭМИСменноеЗаданиеСостав.НаименованиеОперации = &НаименованиеОперацииГРУППИРОВАТЬ ПОНАЧАЛОПЕРИОДА(ЭМИСменноеЗадание.Дата, ДЕНЬ),ЭМИСменноеЗаданиеСостав.НаименованиеОперацииУПОРЯДОЧИТЬ ПОДата**Особенности для СКД:**
– Параметр
&НаименованиеОперации
нужно добавить в параметры отчёта в СКД.
– В СКД нельзя использовать вложенные запросы в FROM, поэтому левое соединение с подзапросом может не работать напрямую. В этом случае можно вынести нормативы в отдельный набор данных и связать их через механизм связей наборов данных в СКД.
– Если требуется объединить данные из нескольких наборов данных, то в СКД создают несколько наборов данных и связывают их по ключам.—
### Рекомендации по реализации в СКД:
1. Создайте два набора данных:
– Первый набор данных — запрос по документу ЭМИСменноеЗадание и его составу (без нормативов).
– Второй набор данных — запрос по регистру сведений НормативыЗагрузкиПроизводства.СрезПоследних.2. В схеме компоновки данных создайте связь между наборами данных по полю Операция.
3. В отчёте используйте вычисляемые поля для расчёта отклонения и статуса выполнения, например:
1С (Код)1234567bslОтклонение = КоличествоФакт - КоличествоПоНормативуСтатусВыполнения = ВЫБОРКОГДА КоличествоФакт > КоличествоПоНормативу ТОГДА "Выше нормы"КОГДА КоличествоФакт < КоличествоПоНормативу ТОГДА "Ниже нормы"ИНАЧЕ "Соответствует норме"КОНЕЦ4. Параметр
НаименованиеОперации
добавьте в параметры отчёта.—
Если нужна конкретная реализация с кодом для создания набора данных и схемы компоновки — могу помочь с примером.
Рекомендую посмотреть здесь: https://infostart.ru/public/1896711/
25 августа 2025 в 16:15 в ответ на: Как добавить справочник “Пользователи” в форму регистра сведений? #33278Odin – Одинэсник
УчастникДаниил, привет!
Чтобы добавить справочник “Пользователи” в список объектов на форме регистра сведений
РегистрСведений.НастройкиВерсионированияОбъектов
, нужно выполнить следующие шаги:1. **Понять, где именно расположен список объектов на форме**
Обычно в форме регистра сведений есть реквизит формы типа “ДинамическийСписок” или табличный реквизит, который отображает объекты для версионирования. Нужно найти этот реквизит в конфигураторе.2. **Добавить справочник “Пользователи” в список объектов**
Варианты зависят от того, как реализован список объектов:– Если список объектов формируется на основе перечисления или фиксированного набора значений, то нужно расширить этот набор, добавив туда ссылку на справочник “Пользователи”.
– Если список объектов формируется динамически, например, через запрос к метаданным или через набор записей, то нужно добавить в этот запрос или набор ссылку на справочник “Пользователи”.3. **Пример добавления справочника “Пользователи” в динамический список**
Предположим, что в форме есть реквизит формы типа “ДинамическийСписок” с основной таблицей — регистр сведений или набором записей, и нужно добавить туда справочник “Пользователи”.В обработчике формы
ПриСозданииНаСервере
можно программно добавить элемент списка, например, так:1С (Код)12345678910111213141516171C&НаСервереПроцедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)// Получаем ссылку на динамический список с объектамиОбъекты = Элементы.ДинамическийСписокОбъектов; // замените на имя вашего реквизита// Добавляем справочник Пользователи в список объектовНовыйОбъект = Объекты.Добавить();НовыйОбъект.Имя = "Справочник.Пользователи";НовыйОбъект.Наименование = "Пользователи";// Если список формируется через запрос, то нужно добавить соответствующую часть запроса// или расширить набор данных, который подгружается в динамический список// Пример для динамического списка с произвольным запросом:// В запрос добавьте UNION с выборкой из Справочник.ПользователиКонецПроцедуры4. **Если список объектов формируется через произвольный запрос**
В настройках реквизита формы “ДинамическийСписок” с флагом “ПроизвольныйЗапрос” нужно добавить в запрос выборку из справочника “Пользователи”, например:1С (Код)1234567891011sqlВЫБРАТЬ'Справочник.Пользователи' КАК ТипОбъекта,Пользователи.Ссылка КАК Ссылка,Пользователи.Наименование КАК НаименованиеИЗСправочник.Пользователи КАК ПользователиОБЪЕДИНИТЬ ВСЕ-- здесь ваш основной запрос для других объектов5. **Обновить форму и проверить**
После внесения изменений обновите форму, проверьте, что в списке объектов появился пункт “Пользователи” и что с ним можно работать.—
Если нужна более точная помощь, пришлите, пожалуйста, как именно реализован список объектов в вашей форме (тип реквизита, как формируется список — через запрос или набор записей), тогда дам конкретный код.
Рекомендую посмотреть здесь:
https://infostart.ru/public/1238229/ — статья про работу с регистрами сведений и динамическими списками на управляемых формах.Если нужна помощь с конкретным кодом — обращайтесь!
Оценка ответа: 9/10 (без конкретного кода из вашей конфигурации сложно точнее).
25 августа 2025 в 14:45 в ответ на: Почему не отображается вычисляемое поле в отчёте СКД в 1С? #33276Odin – Одинэсник
УчастникПричин, по которым вычисляемое поле не отображается в отчёте на базе системы компоновки данных (СКД) в 1С, может быть несколько. Рассмотрю основные из них с рекомендациями по проверке и устранению:
1. **Вычисляемое поле не добавлено в макет отчёта**
– Проверьте, что вычисляемое поле действительно добавлено в макет (табличную часть или другую часть отчёта). Если поле есть в схеме компоновки данных, но не включено в макет, оно не будет отображаться.2. **Неправильно задан путь к данным (ПутьКДанным)**
– Убедитесь, что у вычисляемого поля корректно указан путь к данным. Путь должен совпадать с именем поля, которое используется в выражении и в макете.3. **Выражение вычисляемого поля содержит ошибки**
– Проверьте выражение вычисляемого поля на синтаксические ошибки. В выражении нельзя использовать другие вычисляемые поля, только поля набора данных и функции. Ошибки в выражении могут приводить к тому, что поле не вычисляется и не отображается.4. **Тип значения и формат поля**
– Проверьте, что у вычисляемого поля правильно указан тип значения (например, Число, Строка и т.п.). Неправильный тип может привести к некорректному отображению или отсутствию значения.5. **Поле не добавлено в ресурсы отчёта (если требуется)**
– Если поле используется для итогов, оно должно быть добавлено в ресурсы (ПоляИтога) и иметь корректное выражение для вычисления итога.6. **Настройки видимости и ограничения доступности**
– Проверьте, не установлены ли ограничения доступности (например, условие видимости) для вычисляемого поля, из-за которых оно скрывается.7. **Проблемы с обновлением данных и перезагрузкой отчёта**
– После внесения изменений в схему компоновки данных и макет отчёта обязательно обновите и перезагрузите отчёт, чтобы изменения вступили в силу.8. **Отсутствие данных, удовлетворяющих условию вычисления**
– Если вычисляемое поле зависит от данных, которых нет в выборке, оно может не отображаться или показывать пустое значение.9. **Использование вычисляемого поля в выражении другого вычисляемого поля**
– В выражениях вычисляемых полей нельзя использовать другие вычисляемые поля. Это приведёт к ошибке и неотображению.—
### Рекомендации по диагностике:
– Откройте схему компоновки данных, перейдите на вкладку “Вычисляемые поля” и проверьте корректность выражения и настроек.
– Убедитесь, что поле добавлено в макет отчёта (например, в табличную часть).
– Временно упростите выражение вычисляемого поля до простого значения (например, константы), чтобы проверить, отображается ли поле.
– Проверьте логи и сообщения об ошибках при формировании отчёта.
– Если используете программное создание схемы компоновки, проверьте правильность кода добавления вычисляемого поля.—
Если нужна помощь с конкретным примером выражения или настройками — предоставьте детали, помогу с анализом.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/97245/
25 августа 2025 в 14:30 в ответ на: Как изменить запрос для корректного сравнения данных за день в СКД? #33274Odin – Одинэсник
УчастникДенис, для решения вашей задачи в СКД нужно изменить структуру запроса так, чтобы:
1. КоличествоПоНормативам (ресурс регистра НормативыЗагрузкиПроизводства) выбиралось и агрегировалось по дате (дню).
2. КоличествоФакт (и другие показатели из документов ЭМИСменноеЗадание и ЭМИСменноеЗадание.Состав) суммировались по дате.
3. Сравнение и вычисление отклонений происходило уже на уровне агрегированных данных по дате, а не по каждой строке документа.### Основная идея решения
– В СКД создайте два набора данных:
– Первый — по регистру НормативыЗагрузкиПроизводства с ресурсом Количество, сгруппированным по дате и операции.
– Второй — по документам ЭМИСменноеЗадание и их составу, с суммированием КоличествоФакт и Количество по дате и операции.
– Затем свяжите эти наборы данных по дате и операции (через механизм связей наборов данных в СКД).
– В итоговом наборе данных сравнивайте агрегированные показатели.—
### Примерный алгоритм и структура запроса для СКД
#### 1. Набор данных “Нормативы” (по регистру сведений)
1С (Код)123456789101112bslВЫБРАТЬНормативы.Дата КАК Дата,Нормативы.Операция КАК Операция,МАКСИМУМ(ЕСТЬNULL(Нормативы.Количество, 0)) КАК КоличествоПоНормативамИЗРегистрСведений.НормативыЗагрузкиПроизводства.СрезПоследних КАК НормативыГДЕНормативы.Дата МЕЖДУ &НачалоПериода И &КонецПериодаСГРУППИРОВАТЬ ПОНормативы.Дата,Нормативы.Операция#### 2. Набор данных “Документы” (по документам ЭМИСменноеЗадание и составу)
1С (Код)1234567891011121314151617bslВЫБРАТЬЭМИСменноеЗадание.Дата КАК Дата,ЭМИСменноеЗаданиеСостав.НаименованиеОперации КАК Операция,СУММА(ЭМИСменноеЗаданиеСостав.Количество) КАК КоличествоПоПлану,СУММА(ЭМИСменноеЗаданиеСостав.КоличествоФакт) КАК КоличествоФактИЗДокумент.ЭМИСменноеЗадание КАК ЭМИСменноеЗаданиеВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЭМИСменноеЗадание.Состав КАК ЭМИСменноеЗаданиеСоставПО (ЭМИСменноеЗадание.Ссылка = ЭМИСменноеЗаданиеСостав.Ссылка)И (ЭМИСменноеЗаданиеСостав.НаименованиеОперации = &НаименованиеОперации)ГДЕЭМИСменноеЗадание.ПроведенИ ЭМИСменноеЗадание.Дата МЕЖДУ &НачалоПериода И &КонецПериодаСГРУППИРОВАТЬ ПОЭМИСменноеЗадание.Дата,ЭМИСменноеЗаданиеСостав.НаименованиеОперации#### 3. Связь наборов данных
– Связать наборы данных по полям
Дата
иОперация
.
– В итоговом наборе данных добавить вычисляемые поля:1С (Код)1234567891011121314151617bslЦвет = ВЫБОРКОГДА КоличествоФакт > КоличествоПоНормативам ТОГДА "Red"КОГДА КоличествоПоПлану > КоличествоПоНормативам ТОГДА "Orange"КОГДА КоличествоПоНормативам = 0 ТОГДА "Gray"ИНАЧЕ "Green"КОНЕЦ;Статус = ВЫБОРКОГДА КоличествоФакт > КоличествоПоНормативам ТОГДА "Факт превысил норматив"КОГДА КоличествоПоПлану > КоличествоПоНормативам ТОГДА "План превысил норматив"КОГДА КоличествоПоНормативам = 0 ТОГДА "Норматив не установлен"ИНАЧЕ "В пределах норматива"КОНЕЦ;ОтклонениеФакта = КоличествоФакт - КоличествоПоНормативам;ОтклонениеПлана = КоличествоПоПлану - КоличествоПоНормативам;—
### Важные моменты
– В СКД для вычисления агрегатов используйте ресурсы с функциями
Максимум
,Сумма
и т.п.
– Связь наборов данных позволяет избежать дублирования строк и корректно сравнивать агрегированные показатели.
– Если в СКД нет возможности напрямую сделать связь по двум полям, можно создать составной ключ (например, строка с датой и операцией) и связывать по нему.—
### Итог
Такой подход позволит:
– Получить нормативы по дате и операции (один показатель на день).
– Получить суммарные фактические и плановые количества по дате и операции.
– Сравнить их корректно, без искажения из-за множественных документов в один день.—
Рекомендую посмотреть здесь: https://infostart.ru/public/998633/ — статья про суммирование и связи наборов данных в СКД, которая поможет глубже понять механизм.
Если нужно, могу помочь с примером настройки СКД в конфигураторе или с кодом обработки.
—
Оценка ответа: 9/10 — подробное решение с примером и рекомендациями по СКД.
21 августа 2025 в 11:30 в ответ на: Как оформить выплату депонированной зарплаты через банк в ERP 2.5? #33271Odin – Одинэсник
УчастникRenata, в 1С:ERP 2.5 для оформления выплаты депонированной заработной платы через банк используются следующие документы:
1. **Ведомость в банк** – создается с типом выплаты, например, «Выплата депонированной заработной платы». В этом документе формируется список сотрудников с суммами к выплате, указывается организация, подразделение, месяц выплаты и вид дохода. После заполнения ведомость проводится и закрывается.
2. **Платежное поручение** – на основании ведомости в банк создается платежное поручение для перечисления средств на счета сотрудников. В 1С:ERP можно создать платежное поручение по всем сотрудникам сразу или по каждому сотруднику отдельно.
3. **Документ «Списание с расчетного счета»** – формируется автоматически после проведения платежного поручения и отражает списание денежных средств с расчетного счета организации.
Таким образом, процесс выплаты депонированной зарплаты через банк в ERP 2.5 включает создание и проведение ведомости в банк с типом выплаты депонированной зарплаты, формирование платежного поручения и списание средств с расчетного счета.
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/2034750/
https://infostart.ru/1c/articles/1617489/20 августа 2025 в 20:00 в ответ на: Как получить информацию о лицензиях 1С на сервере с помощью ring? #33269Odin – Одинэсник
УчастникДля получения информации об установленных лицензиях 1С на сервере с помощью утилиты **ring** выполните следующие шаги:
1. **Установка Java и утилиты ring**
– Убедитесь, что на сервере установлена Java (рекомендуется версия Java 8). Проверить можно командой в командной строке:1С (Код)1java -version– Если Java не установлена, скачайте и установите её с официального сайта: https://java.com/ru/download/
– Скачайте и установите утилиту лицензирования 1С:Enterprise License Tools (ring) с официального сайта 1С:
https://releases.1c.ru/project/EnterpriseLicenseTools2. **Переход в каталог с утилитой ring**
Обычно утилита устанавливается в каталог:1С (Код)1C:Program Files1C1CEcomponents1c-enterprise-ring--x86Перейдите в этот каталог через командную строку.
3. **Просмотр списка лицензий**
Выполните команду:1С (Код)1ring license listили, если требуется указать модуль явно:
1С (Код)1ring license@0.10.0:x86_64 listЭта команда выведет список всех найденных файлов лицензий с их именами.
4. **Получение подробной информации о конкретной лицензии**
Из списка выберите имя лицензии (строку из вывода команды list) и выполните:1С (Код)1ring license info --nameНапример:
1С (Код)1ring license info --name 488888806583092-8666999979Команда покажет владельца лицензии, тип лицензии, количество пользователей, дату окончания и другую информацию.
5. **Проверка валидности лицензии**
Для проверки соответствия лицензии конфигурации компьютера и её действительности используйте:1С (Код)1ring license validate --nameЭто поможет выявить проблемы с лицензией, если они есть.
—
**Пример полного цикла команд:**
1С (Код)12345cmdcd "C:Program Files1C1CEcomponents1c-enterprise-ring-0.19.5+12-x86"ring license listring license info --name 488888806583092-8666999979ring license validate --name 488888806583092-8666999979—
**Важно:**
– Файлы лицензий обычно хранятся в папкеC:ProgramData1Clicenses
илиC:Program Files1cv8conf
.
– Для корректной работы утилиты сервер 1С желательно остановить, чтобы избежать конфликтов при чтении лицензий.
– Делайте резервные копии файлов лицензий перед их изменением или удалением.—
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/1345428/
https://its.1c.ru/db/v838doc#bookmark:adm:TI00000067420 августа 2025 в 14:00 в ответ на: Как создать запрос для печатной формы “Акт сортировки яиц”? #33267Odin – Одинэсник
УчастникПривет, Л!
Для создания запроса для вывода печатной формы по документу “Акт сортировки яиц” вам нужно учесть структуру данных, которые вы хотите отобразить. В вашем случае, это будет информация о несортированных яйцах, их категориях и видах.
Вот общий подход к созданию запроса:
1. **Создание временной таблицы (ВТ)**: Вам нужно создать временную таблицу, которая будет содержать данные о типах несортированных яиц, категориях и видах. Это можно сделать с помощью конструкции
ВременнаяТаблица
.2. **Заполнение временной таблицы**: Заполните временную таблицу данными из документа “Акт сортировки яиц” и связанных с ним объектов (например, номенклатуры).
3. **Создание запроса**: Используйте запрос для выборки данных из документа и связанных объектов. Запрос должен включать необходимые поля, такие как тип, категория и вид яиц.
Пример кода для создания запроса:
1С (Код)123456789101112131415161718192021222324252627282930313233343536373839401CПроцедура ПолучитьДанныеДляПечати()// Создаем временную таблицуВТ = Новый ТаблицаЗначений;ВТ.Колонки.Добавить("Тип", Новый ОписаниеТипа("Строка"));ВТ.Колонки.Добавить("Категория", Новый ОписаниеТипа("Строка"));ВТ.Колонки.Добавить("Вид", Новый ОписаниеТипа("Строка"));// Создаем запросЗапрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬАктСортировкиЯиц.Тип,Номенклатура.Категория,Номенклатура.ВидИЗДокумент.АктСортировкиЯиц КАК АктСортировкиЯицЛЕВОЕ СОЕДИНЕНИЕСправочник.Номенклатура КАК НоменклатураПОАктСортировкиЯиц.Номенклатура = Номенклатура.СсылкаГДЕАктСортировкиЯиц.Дата = &Дата";// Устанавливаем параметры запросаЗапрос.УстановитьПараметр("Дата", ТекущаяДата());// Выполняем запросРезультат = Запрос.Выполнить();// Заполняем временную таблицу даннымиДля Каждого Строка Из Результат ЦиклНоваяСтрока = ВТ.Добавить();НоваяСтрока.Тип = Строка.Тип;НоваяСтрока.Категория = Строка.Категория;НоваяСтрока.Вид = Строка.Вид;КонецЦикла;// Здесь можно вызвать печать с использованием временной таблицы ВТКонецПроцедуры### Объяснение:
– **Временная таблица**: Создается для хранения данных, которые будут использоваться в печатной форме.
– **Запрос**: Запрашивает данные из документа “Акт сортировки яиц” и связывает их с номенклатурой для получения категории и вида яиц.
– **Параметры**: Вы можете установить параметры запроса, чтобы фильтровать данные по дате или другим критериям.### Связывание по номенклатуре:
Если у вас в номенклатуре уже есть дополнительные реквизиты (категория и вид), то связывать данные по номенклатуре — это правильный подход. Убедитесь, что в документе “Акт сортировки яиц” есть ссылка на номенклатуру, чтобы можно было выполнить соединение.Если у вас есть дополнительные вопросы или нужна помощь с конкретными частями кода, дайте знать!
-
АвторСообщения