Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save anonymous/09d0622923fc1b455199d7b49378c732 to your computer and use it in GitHub Desktop.
Save anonymous/09d0622923fc1b455199d7b49378c732 to your computer and use it in GitHub Desktop.
Мутабельное значение 1с это

Мутабельное значение 1с это - Попытка передачи мутабельного значения


Мутабельное значение 1с это



Как передать на сервер мутабельное значение
Что такое мутабельное значение
Как передать на сервер мутабельное значение
Как передать на сервер мутабельное значение
Попытка передачи мутабельного значения
Попытка передачи мутабельного значения













Значение реквизита формы поле выбора с заполняемым при открытии формы списком выбора на заполненность проверяю так:. Нород, вам заняться нечем? Товары - это мутабельное значение, а СправочникСсылка. Пришла и моя очередь наступить на эти же грабли. В связи с этим вопрос-просьба. Не могли бы Вы, Максим, указать на место в документации, или еще на какой-нибудь источник, или здесь, в этой теме, по тем типам данных 1С Предприятие 8. Или эта граница четко проходит между типами Ссылка можно передавать и Объект нельзя передавать? И конечно же, я хочу выразить свое неудовольствие тем, что при реализации функции ЗначениеЗаполнено фирма 1С не обеспечила совместимость прямой замены пар НЕ ЗначениеНеЗаполнено на ЗначениеЗаполнено и ЗначениеНеЗаполнено на НЕ ЗначениеЗаполнено. Судя по моему горькому опыту тупой замены, не у меня одного на выходе получилась неработоспособная конфигурация. Того, что объект во время сравнения может мутировать? Но, извините меня, это же глупо! Чтобы там не утверждалось корпорациями Intel и Microsoft по поводу многозадачности, но как машинный язык х86 и стоящий выше над ним язык Ассемблера был раньше, так и остается сейчас. А речь идет о том, что в один момент времени один процессор одно процессорное ядро, так как теперь процессоры физически многоядерные x86 и х64 тоже способен выполнять только одну машинную команду за такт более длинные опустим. Пусть на дворе уже й век и сейчас мы не сравниваем регистр с регистром или регистр с числом, как было раньше, а сравниваем блок памяти с блоком памяти структуры, описывающие переданный объект и объект по умолчанию - все равно, исходя из этих незыблемых постулатов, на временной оси в некоторой точке, когда осуществляется проверка переданного значения с его типом по умолчанию, объект статичен, так как процессор занят исполнением инструкции сравнения или подпрограммы сравнения структуры со структурой , и объект регистр или блок памяти не может измениться в этот момент. Соответственно и платформа а конкретно некий ассемблерный код будет работать сравнивать экземпляр объекта в том виде, как он был передан ей в момент вызова функции ЗначениеЗаполнено. Нет, конечно можно предположить возникновение такой странной и редкой к тому же ситуации, когда в аппаратной физически многоядерной системе что в принципе не редкость сейчас уже при выполнении многопоточной программы первый поток будет выполнять функцию ЗначениеЗаполнено Объект , а второй поток будет выполнять функцию изменения значений реквизитов этого объекта. Предположим, что объем кода и скорость его выполнения одинаковы что уже бред, так как функционал разный. На низком уровне это будет означать, что при сравнении блоков памяти содержащих проверяемый объект и объект по умолчанию в один и тот же машинный такт первое физическое ядро будет выполнять команду сравнения ячейки памяти первого блока с ячейкой памяти второго блока, а второе ядро будет выполнять команду записи нового значения в ту же ячейку памяти первого блока как раз случай мутирующего на лету объекта , то есть риск получения неверных результатов? Но этого не произойдет J. Несмотря на все достижения компании Intel по созданию многоядерных систем, в отрасли памяти не все так радужно. И если два ядра захотят одновременно получить доступ к этой ячейке памяти, то будет вызвано либо исключение, либо они выстроятся в очередь. А это уже - последовательный доступ, то есть объект в момент сравнения опять статичен, так как какая разница, когда он будет изменен - за секунды или наносекунды до момента сравнения? Так какие же причины заставили 1С наложить ограничения на функцию ЗначениеЗаполнено , ограничив в ней использование т. В фирме "1С" не существует практики открытой публикации и открытого обсуждения причин и соображений, приведших к тому или иному технологическому решению. В этой конференции обсуждаются вопросы "как это работает", а не "почему 1С не сделала вот так". А как функция должна определять, заполнен объект или нет? Подозреваю, что по причине этой неопределенности и вообще бессмысленности проверки объекта на заполненность эта функция с объектами и не работает, дело тут не в "мутабельности",. Хотя, конечно, в каких-то случаях было бы удобно считать переменную типа СправочникОбъект или ДокументОбъект всегда заполненной. Но этих случаев сравнительно мало, да и вообще код, в котором одна и та же переменная может быть ссылкой на объект, а может быть и самим объектом - либо очень кривой, либо очень специфический. Кроме того, вряд ли 1С давала обещание или призывала менять прикладную функцию на платформенную. Никто не запрещает в старых решениях продолжать пользоваться прикладной функций, а в новых - системной, учитывая особенности ее работы. Ну дык, платформа 1С: Предприятие не настолько низкоуровневая, чтобы работать с процессором. И где Вы нашли функцию ЗначениеНеЗаполнено? По-моему, такой функции нет. Вы же сами чуть выше привели ее исходный код. Ее код вставляли в большое количество конфигураций 8. Именно по этой причине 1С, как я понимаю, и решила перенести ее с прикладного уровня на системный раз ею так часто пользовались программисты. А после перевода прикладную функцию из исходного текста убрать. Именно так я и собрался сделать в нашей самописной конфигурации, когда решил перевести ее с 8. Но только фишка вот в чем. Впрямую заменить НЕ ЗначениеНеЗаполнено на ЗначениеЗаполнено и ЗначениеНеЗаполнено на НЕ ЗначениеЗаполнено нельзя, так как видите ли, в своей версии этой функции 1С ввела ограничение на "мутабельные значения", хотя прикладная отлично их переваривала. А слабо Вам ручками ковыряться с каждым вызовом из !!! Лучше бы уж оставили все как есть. Предложили только костыли в виде:. Мы не готовы комментировать сообщения NoName на форуме http: Но даже из краткого и внимательного прочтения видно несоответствие:. Другими словами - ссылка на элемент справочника это мутабельный тип Как отказаться от использования модальности. Скачать бесплатно книгу "Практическое пособие разработчика" и учебную платформу Скачать бесплатно только учебную платформу. В плоский режим Войти Вы не авторизованы. Функция проверяет, отличается ли переданное значение от значения по умолчанию того же типа. Не работает с мутабельными значениями. При передаче мутабельного значения функция вызывает исключение. Значение реквизита формы поле выбора с заполняемым при открытии формы списком выбора на заполненность проверяю так: Использование функции ЗначениеЗаполнено не работает. Про эту функцию все написно в синтакс-помощнике. Я совершенно отчетливо представляю себе разницу между прикладной функцией ЗначениеНеЗаполнено которую кто-то реализовал на 8. Я пытаюсь заменить прикладную конструкцию НЕ ЗначениеНеЗаполнено на эквивалентную ей новую системную ЗначениеЗаполнено , но не могу, так как системная функция, реализованная в 1С: Так как раз они не равноценны, то и замены полной не получается. А если новая функция не равноценна старой, то зачем ее тогда было делать? Да еще тем более с учетом того, что по функциональному охвату она проигрывает прикладной ЗначениеНеЗаполнено. Если вас по каким-то причинам не устраивает имеющаяся в платформе стандартная функциональность, вы можете написать собственную функцию, которая будет работать так, как хочется вам. А где же Вы нашли функцию ЗначениеНеЗаполнено? Я знаю только ЗначениеЗаполнено. Предложили только костыли в виде: Если работаете с объектами конфигурации, то используйте свойство Модифицированность. Опишите поконкретнее, что Вы в эту функцию хотите передавать кроме ссылок и значений примитивных типов? Я-то ничего, собственно, не хочу. Речь идет о самописной конфигурации, написанной когда-то на 8. Авторов нету, поэтому поддержка перешла на меня. Мы сконвертировали конфигурацию в формат 8. Вроде как системная функция ЗначениеЗаполнено должна работать быстрее, чем прикладная ЗначениеНеЗаполнено. Честно скажу, что сам я не проверял прирост быстродействия от перехода с прикладной на системную Может оно вообще овчинка выделки не стоит. Ладно, бог с ним. Пусть ЗначениеНеЗаполнено так и дальше остается в конфигурации. Что нового будем писать - будем уже конечно системную функцию использовать. Другими словами - ссылка на элемент справочника это мутабельный тип СправочникСсылка , а вот объект справочника СправочникОбъект - не мутабельный. Факт того, что объект конфигурации является мутабельным служит указание в его описании слова "Возможен обмен с сервером". Так, например, в описании объекта "СправочникСсылка" есть такое слово, а у объекта "СписокЗначений" - нет"Т. У вас всегда есть возможность проверить правильность того или иного утверждения самостоятельно. Но даже из краткого и внимательного прочтения видно несоответствие: Темы, по которым обсуждение закрыто. Детям и родителям, менеджерам и руководителям. Разработка в системе "1С: Комплексная автоматизация организаций дополнительного образования. Эксперта по технологическим вопросам. Пример быстрой разработки приложений на платформе "1С: Примеры и типовые приемы артикул Новые возможности версии 8. Пример быстрой разработки приложений на платформе 1С: Скачать бесплатно книгу "Практическое пособие разработчика" и учебную платформу Скачать бесплатно только учебную платформу Форум поддержки читателей книги "Практическое пособие разработчика.


Предохранение от беременности календарным способом
Контакт новости 29
Tres cool перевод
Поздравления с 3 мя месяцами девочке
Карта халкидики с поселками
Тесто на курник на кефире фото
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment