Есть ли функция, которая возвращает все измененные поля формы, то есть объект не равен ссылке и по какому полю (для обычных форм).
По теме из базы знаний
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2/3.0
- 50+ советов для успешной сдачи 1С: Специалист по платформе
- Автозадачи
- Конфигурация Flowcon: Набор инструментов для управления задачами, проектами и бизнесом в 1С
- Разработка и сценарное тестирование с Vanessa-ADD. Практические примеры сценариев. Шаги встроенной библиотеки
Найденные решения
(12)Нет такой функции, если элементы формы напрямую связаны с реквизитами объекта, то обход по метаданным всех реквизитов и табличных частей для сравнения с данными в ссылке, если нет (форма живет своими реквизитами и при записи сует их в объект), то селя ви
(14) (15) (7)(11) Я дам развернутый ответ, для новичков:
1) В тексте ответов были указания, что данных много, значит функцию однозначно нельзя делать на 1С и программисты 1С наверняка об этом знали. Потому что они тестируют на огромном количестве данных свои функции. Поэтому надо делать платформенную функцию.
2) Платформенную функцию не сделали, из того же соображения быстродействия, даже в откомплированном машинном коде, но с многократными запросами к базе данных её не выгодно делать.
3) И наконец перспективы её применения при возможности заблокировать элемент на форме - сомнительны!!!
Вот наиболее правильный полный ответ, собранный на основе ответов поддержки 1С
Ответ (14) наиболее правильный, для остальных фирма 1С рекомендует блокировать пользователю элементы, которые он не должен изменять. ВСЕ!!!
1) В тексте ответов были указания, что данных много, значит функцию однозначно нельзя делать на 1С и программисты 1С наверняка об этом знали. Потому что они тестируют на огромном количестве данных свои функции. Поэтому надо делать платформенную функцию.
2) Платформенную функцию не сделали, из того же соображения быстродействия, даже в откомплированном машинном коде, но с многократными запросами к базе данных её не выгодно делать.
3) И наконец перспективы её применения при возможности заблокировать элемент на форме - сомнительны!!!
Вот наиболее правильный полный ответ, собранный на основе ответов поддержки 1С
Ответ (14) наиболее правильный, для остальных фирма 1С рекомендует блокировать пользователю элементы, которые он не должен изменять. ВСЕ!!!
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
* Есть метод формы Модифицированность()
* Если поля на форме, связанны с объектом формы, то можно сформировать коллекцию из этих реквизитов и сравнить с коллекцией по ссылке/данными на сервере. Получаем две коллекции и сравниваем: ОбщегоНазначения.КоллекцииИдентичны(БСП) - Сравнивает две коллекции строк (ТаблицаЗначений, ДеревоЗначений и т.д.), Возвращаемое значение: Булево - Истина, если идентичны.
* В интернете есть масса фукнкций по сравниванию структур, массивов, коллекций. Писать самому - вообще полезнее, вам скорее всего универсальная и не нужна.
* Можно сравнить хэш суммы, но состав хэша придется все равно самому придумывать.
* Если поля реквизитов формы, не связанных с объектом, то нужно запомнить их в память до редактирования, сравнить после...
* Еще есть ОбщегоНазначенияКлиентСервер.РазностьМассивов(БСП) - Возвращает разность массивов. Разностью двух массивов является массив, содержащий все элементы первого массива, не существующие во втором массиве.
* Если поля на форме, связанны с объектом формы, то можно сформировать коллекцию из этих реквизитов и сравнить с коллекцией по ссылке/данными на сервере. Получаем две коллекции и сравниваем: ОбщегоНазначения.КоллекцииИдентичны(БСП) - Сравнивает две коллекции строк (ТаблицаЗначений, ДеревоЗначений и т.д.), Возвращаемое значение: Булево - Истина, если идентичны.
* В интернете есть масса фукнкций по сравниванию структур, массивов, коллекций. Писать самому - вообще полезнее, вам скорее всего универсальная и не нужна.
* Можно сравнить хэш суммы, но состав хэша придется все равно самому придумывать.
* Если поля реквизитов формы, не связанных с объектом, то нужно запомнить их в память до редактирования, сравнить после...
* Еще есть ОбщегоНазначенияКлиентСервер.РазностьМассивов(БСП) - Возвращает разность массивов. Разностью двух массивов является массив, содержащий все элементы первого массива, не существующие во втором массиве.
(3) Скажу прямо, мне скорее всего нужна "только универсальная", и даже не собираюсь косячить сам.
А вы скорее всего не сталкивались с формой в которой 200 разнообразных переменных 50 полей и семь табличных частей. Поэтому прошу не продолжать. Если общей нет, то ваши предложения не заинтересовали. Я четко все написал в задании.
А всех возможных функций я уже натаскал из инета и проверил.
Еще раз повторю, есть необходимость сравнить объект и ссылку - все!!!. Нужна стандартная функция без лишних нравоучений и умозаключений
Объект <> Ссылка и на выходе массив полей и табличных частей с измененными данными.
Отмененные изменения не интересуют
Заранее благодарю за ответ.
А вы скорее всего не сталкивались с формой в которой 200 разнообразных переменных 50 полей и семь табличных частей. Поэтому прошу не продолжать. Если общей нет, то ваши предложения не заинтересовали. Я четко все написал в задании.
А всех возможных функций я уже натаскал из инета и проверил.
Еще раз повторю, есть необходимость сравнить объект и ссылку - все!!!. Нужна стандартная функция без лишних нравоучений и умозаключений
Объект <> Ссылка и на выходе массив полей и табличных частей с измененными данными.
Отмененные изменения не интересуют
Заранее благодарю за ответ.
(4)
Это совсем не то, что написано в заголовке темы.
В БСП в подсистеме Версионирование новая версия создается только если были изменения в объекте.
Можете попробовать посмотреть в эту сторону.
Еще раз повторю, есть необходимость сравнить объект и ссылку - все!!!
Это совсем не то, что написано в заголовке темы.
В БСП в подсистеме Версионирование новая версия создается только если были изменения в объекте.
Можете попробовать посмотреть в эту сторону.
(11) Я это пробовал, версионирование вести нельзя, база гигантская, это следует из моей фразы "А вы скорее всего не сталкивались с формой в которой 200 разнообразных переменных 50 полей". Архивы очень, очень большие и так. И интересует именно функция, если вы знаете конкретно эту функцию.
Есть ли функция, которая возвращает все измененные поля формы, то есть объект не равен ссылке и по какому полю (для обычных форм). Где чего не совпадает
"Еще раз повторю, есть необходимость сравнить объект и ссылку - все!!!" - "объект не равен ссылке и по какому полю"
Отвечаю автору который предлагает сравнивать коллекции
"Еще раз повторю, есть необходимость сравнить объект и ссылку - все!!!" - "объект не равен ссылке и по какому полю"
Отвечаю автору который предлагает сравнивать коллекции
Если поля на форме, связанны с объектом формы, то можно сформировать коллекцию из этих реквизитов и сравнить с коллекцией по ссылке/данными на сервере. Получаем две коллекции и сравниваем:
(12)Нет такой функции, если элементы формы напрямую связаны с реквизитами объекта, то обход по метаданным всех реквизитов и табличных частей для сравнения с данными в ссылке, если нет (форма живет своими реквизитами и при записи сует их в объект), то селя ви
(14) (15) (7)(11) Я дам развернутый ответ, для новичков:
1) В тексте ответов были указания, что данных много, значит функцию однозначно нельзя делать на 1С и программисты 1С наверняка об этом знали. Потому что они тестируют на огромном количестве данных свои функции. Поэтому надо делать платформенную функцию.
2) Платформенную функцию не сделали, из того же соображения быстродействия, даже в откомплированном машинном коде, но с многократными запросами к базе данных её не выгодно делать.
3) И наконец перспективы её применения при возможности заблокировать элемент на форме - сомнительны!!!
Вот наиболее правильный полный ответ, собранный на основе ответов поддержки 1С
Ответ (14) наиболее правильный, для остальных фирма 1С рекомендует блокировать пользователю элементы, которые он не должен изменять. ВСЕ!!!
1) В тексте ответов были указания, что данных много, значит функцию однозначно нельзя делать на 1С и программисты 1С наверняка об этом знали. Потому что они тестируют на огромном количестве данных свои функции. Поэтому надо делать платформенную функцию.
2) Платформенную функцию не сделали, из того же соображения быстродействия, даже в откомплированном машинном коде, но с многократными запросами к базе данных её не выгодно делать.
3) И наконец перспективы её применения при возможности заблокировать элемент на форме - сомнительны!!!
Вот наиболее правильный полный ответ, собранный на основе ответов поддержки 1С
Ответ (14) наиболее правильный, для остальных фирма 1С рекомендует блокировать пользователю элементы, которые он не должен изменять. ВСЕ!!!
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот