Как сбросить признак модифицированности документа #382527


#0 by victuan1
При открытии документа я делаю некоторые формальные действия над реквизитами документа, которые устанавливают признак модифицированности документа. Как сбросить признак модифицированности наиболее корректно? Способ "НачатьТранзакцию Записать ОтменитьТранзакцию" не предлагать.
#1 by Гефест
Для чего его надо сбрасывать?
#2 by victuan1
При открытии документа я перезагружаю табличную часть. Мне не надо взводить признак модифицированности т.к. фактически изменений данных нет и не надо чтобы пользователю предлагалсь сохранить документ при выходе из него.
#3 by Provod
МНе кажется что так вообще нельзя методически не верно.Сам факт того что вы "загружаете табличную часть" я бы вам посоветовал вариант 1) загружать табличную часть только после того как убедитесь что она изменится тоесть содержимое временной таблицы значений не равно таблице документа.Или не показывать пользователю табличную часть документа а в место нее показывать таблицу значений (подмена с полным функционалом чтоб разницу не замечали вообще) Ну в общем сами додумаете. А зачем загружаете то вообще ?
#4 by GreyK
Начало было здесь:
#5 by victuan1
Да
#6 by mishaPH
Штатно помоему никак. вк могут
#7 by Стрелок
ВК нельзя. у него принципы - без ВК
#8 by victuan1
Не хотелось бы тянуть формекс или 1с++ ради такого пустякового действа
#9 by Vippi
А почему не хотелось? Это это действо пустяковое. А получишь массу непустяковых.
#10 by Стрелок
а тебе сразу говорили...
#11 by mishaPH
В формексе очень много полезного.
#12 by Стрелок
(+11) даже возможность задействовать штатные механизмы при работе с несколькими табличными частями через таблицу значений на форме ;))
#13 by victuan1
Хочу чтобы конфигурация: 1) не зависила от прав и сис.админа 2) имела статус "1С:Совместимо" (формекс и 1с++ не имеют этот статус)
#14 by victuan1
Да, я знаю. Наверное, я и воспользуюсь этой возможностью в другой конфигурации - в которой потребуется несколько ТЧ на одной закладке. Но в этой конфигурации хочу обойтись выбранным мною решением.
#15 by Стрелок
что тебе да1т статус "1С:Совместимо"? это твоя собственная разработка? ты получил уже этот статус? учти - автоматически такой статус недаётся кроме того если не ошибаюсь "1С:Совместимо" даётся разработкам НЕ на языке 1С - внешним компонентам, утилитам и прочему..... для конфигураций такого статуса просто нет и быть не может - они и так уже 1С им не надо совмещать ;)
#16 by Стрелок
упёртость достойная уважения....
#17 by Vippi
1) FormEx не зависит от прав. 2) Зачем? Использование ВК запрещено фирмой 1С?
#18 by victuan1
Пока что выбранное мною решение меня полностью устраивает кроме малого пустяка в виде модифицированности. Программирование больше искуство чем ремесло, хочется, чтобы картина получилась целостной. Если я заюзаю формекс для решения проблемы с модифицированностью, то нужно будет ТЧ делать через ТабличноеПоле. Но это будет уже другая картина, с другой худ. ценностью.
#19 by victuan1
1) Разве? 2) Пройдет ли такая конфигурация сертификацию?
#20 by Vippi
> то нужно будет ТЧ делать через ТабличноеПоле У FormEx нет ТабличногоПоля. Что-то у тебя в голове все смешалось. Это бывает. От недостатка знаний.
#21 by Стрелок
"2) Пройдет ли такая конфигурация сертификацию?" - а зачем? ты написал нечто уровня УПП?
#22 by Vippi
1) Разве. 2) А зачем тебе нужна сертификация?
#23 by victuan1
Не надо придираться. Когда писал, я знал что это функционал 1с++. А формекс я использую в составе ВК 1с++
#24 by Стрелок
заче6м табличное поле? хватает штатной таблицы значений. не надо умножать сущностей особенно в тех областях где немного "плаваешь"
#25 by Vippi
А зря. Со времени разделения 1C++ и FormEx очень много воды утекло.
#26 by Стрелок
упс.. а я думал наоборот..... они объединились после того как появились отдельно
#27 by victuan1
Когда начал писать свою конфу резко обнажилась сырость УПП и история ее разработки, выраженная не в совсем удачной структуре метаданных. На аналог УПП я не претендую, просто занимаюсь автоматизацией производственного предприятия, которое давно ведет учет на доработанной типовой бух. Сертификация мне не нужна, просто это для меня некий условный критерий грамотности разработки Штатная ТЗ меня не устраивает не под каким соусом. Мне нужен объект с полноценными интерфейсными возможностями. Я в курсе. Есть 1с++ с формексом и есть без формекса, на выбор.
#28 by Vippi
А для меня критерий грамотности разработки это ее удобство и функциональность. Проект 1С++ + FormEx давно остановлен и развиваться не будет. На сегодняшний день актуальны 1С++ 3.0 и FormEx 2.0.5.93, которые активно развиваются и поддерживаются.
#29 by Стрелок
1. обнаружив серость УПП ты решил ваять на 7.7 - логично 2. интересный кретерий ;) 3. штатная ТЗ+Формекс=полноценный интерфейс со всеми возможностями ТЧ
#30 by victuan1
1. Я решил пока попользоваться ресурсами 7.7, они будут еще не скоро исчерпаны. Изучаю 1с8.1 я медленно и осторожно. 7.7 мною изъезжена вдоль и поперек. Решение сделанное мною на ее основе будет более качественным и быстрым чем на 8.1. Переход на 8.1 им предстоит впереди, после того как я разберу бардак в сегодняшней ситуации на предприятии и смогу не спеша заняться освоением и переходом на 8.1 2. Приницип формальной логики. Искренне верю, что я не умнее всех, а тем более разработчиков инструмента и криетриев к нему. 3. штатная ТЗ+Формекс = НЕ штатная ТЗ. Еще раз повторю: эту возможность я буду осваивать не в этой конфигурации.
#31 by victuan1
Этим критерием я пользуюсь в первую очередь: удобство и функциональность.
#32 by Vippi
А использование ВК как раз для этого и предназначено.
#33 by mishaPH
пардон конечно, но автор просто глуп.
#34 by Стрелок
это бесполезна. эта как вера.... думается мне всё объясняется незнанием компонент и принципов работы с ними. особенно улыбнуло то что человек посчитал УПП сырой, но при этом осторожно изучает 8-ку. т.е. не являясь специалистом сделал вывод и нежелая пользовать ВК обрекает пользователей на мучение со своимм сертифицированным творением
#35 by victuan1
, По-моему, начинается переход на личности. Это никого не красит. Тем более необоснованный.
#36 by Стрелок
я на личности не переходил. я делаю выводы и высказываю своё мнение.
#37 by Стрелок
ответ на вопрос - щтатных методов сбросить признак модифицированнсти ез записи я не знаю
#38 by victuan1
Проблема в том, что твое мнение в этой тематической ветки является флудом. Я задал конкретный вопрос, а вместо получаю мнение и оценку моего понимания программирования.
#39 by mishaPH
ну как сказать не обоснованный. религиозные догмы тут просто глупо
#40 by Стрелок
писец какой ты нудный... жена есть?
#41 by victuan1
:))
#42 by victuan1
Ты, мягко говоря, ошибаешься. Обрати внимание, что "ВК нельзя. у него принципы - без ВК" сказал не я. 1с++ я использую активно, в частности ВыполняемыйМодуль. Одна моя конфигурация основана на этом. Просто надо шире смотреть на мир, и не быть в рамках одного панциря.
#43 by Стрелок
приходит пациент к доктору Пациент - доктор, как мне вырастить третью ногу Доктор - это невозможно Пациент - а я хочу Доктор - но зачем вам третья нога? Пациент - буду стоять устойчивее на лестнице Доктор - воспользуйтесь страховочным ремнём Пациент - не хочу, мне цыет его не нравится Доктор - воспользуйтесь подъёмником пациент - не хочу, он шумит Доктор - я вам не могу помочь, обратитесь к психиатору Пациент - доктор вы переходите на личности, я задал вопрос вы не отвечаете а несёте откровенную пургу Доктор - .........!!!!!...!!!!!
#44 by Стрелок
я знаю что у тебя. ты якобы придумал своё ноу-хау с табличными частями, теперь ты ни на шаг не хочешь отступать от своего  решения по причине того что считаешь его гениальным. ты просто не слышишь то что тебе не нравится.
#45 by victuan1
Нет аналогии с моим случаем, потому что: а) я не спорю, что штатных способов решения сабжа нет (видимо, поэтому тему можно закрыть) б) я оценил красоту использования подч. доков и ТабличногоПоля, и наверняка буду этим пользоваться, если понадобится
#46 by mishaPH
Вы выдаете желаемое за действительно. В панцре запертом догмами и какими-то своими принципами находитесь вы. Я никогда не противился чему-либо если надо бвло сделать что-то, что такие как вы не хотите по религиозным соображениям.
#47 by Vippi
ВыполняемыйМодуль это только крохотная часть 1С++, используемая для достаточно специфичных задач. Почему не хочешь продолжить изучение, непонятно.
#48 by victuan1
Что у меня за религиозные соображения. Ни в коем случае не юзать ВК? Нет таких у меня соображений. Просто мне удалось решить задачу без ВК. Зачем теперь мне тратить время и ресурсы, чтобы теперь решить ее по другому?
#49 by victuan1
Думаешь, что открыл глаза? Как я должен продолжить изучение? Я пытался заюзать класс ИндексированнаяТаблица
#50 by victuan1
Хорошо, первоначальная тема закрыта. Предлагаю перенести ветку в лайф. И продолжить "религиозные войны"
#51 by Vippi
На уж, не мучься.
#52 by Стрелок
ему не подходит;))) не кошерно видимо ;)
#53 by victuan1
Дело не в кошерности, а в том, что этот код работает глюкаво. ОтменитьТранзакцию срабатывает, но не во всех плоскостях.
#54 by Vippi
Опа. Невнимательно прочитал. А почему, собственно?
#55 by Vippi
Есть большое подозрение в другой причине глюкавости.
#56 by victuan1
1. В млг-файле фиксируется факт изменения документа 2. Зафискируется факт изменения для УРБД (не проверено!)
#57 by Vippi
И что?
#58 by victuan1
Если я открою кучу этих документов на просмотр, то они все зафиксируются как измененные и попадут в обмен.
#59 by Vippi
1. Для записанных документов будет работать РегистрацияИзменений 2. Метод в действительно глючный, но в другом.
#60 by victuan1
РегистрацияИзменений поможет для 56.2. А что поможет для 56.1? Дело в том, что я использую своей обработкой млг-файл для анализа изменений.
#61 by victuan1
Скажи в чем действительно глючный?
#62 by Vippi
Ну например, если использовать Записать в транзакции для нового документа и потом закрыть его не сохраняя, то документ в базе не появится, а следующий номер такого документа зафиксируется. И в mlg появится запись с неразрешенной ссылкой.
#63 by victuan1
Ну вот видишь, меня не устроит такое положение дел.
#64 by Vippi
Ну так и не пытайся применить "псевдоштатные" способы. Используй ВК и не парься.
#65 by victuan1
В данной ситуации для данной конфигурации я смирюсь с таким пустячком как Модифицированность при открытии документа.
#66 by victuan1
Ладно, у меня готова новая демка с моими "псевдоштатными" ТЧ. Если кого заинтересует, могу выложить на слил.
#67 by GreyK
Это легко обходится проверкой на модифицированность. А проблемку в решил, а так я тебе могу скинуть свою демку, то-же работает, и сабж тоже гад работает :(
#68 by victuan1
С радостью посмотрю victuanmail ru
#69 by GreyK
Здесь нетак и много кода, выложу здесь:
#70 by Cthulhu
: использовать запись в отмененной транзакции для сброса флага модифицированности НОВОГО документа -- действие настолько же бессмысленное, как и апелляция к таковому действию, ибо новый документ на просмотр не открывается и изначально модифицирован.. так что убежденность в "глючности" метода - надуманная..
#71 by Дядя Васька
Ты решил вырывать гланды через задницу. Соответственно и в дальнейшем будешь так же извращаться. Самый подходящий в данном случае метод написан в сабже. А вообще-то это бред, каждый раз ТЧ перезаполнять. Если там 1000 строк, док открываться будет ну оооочень долго.
#72 by victuan1
Ты использовал способ "НачатьТранзакцию Записать ОтменитьТранзакцию", который мне не подходит Согласен, как-то сразу мимо мозга проскочило, но остается проблема для созданных ранее документов: , п.1 Опять двадцать пять. У меня перерисовывается незаметно при большом количестве строк. Что я делаю не так?
#73 by GreyK
Скорость открытия нормальная, загрузитьтч работает быстро.
#74 by Дядя Васька
, А что есть нормально? Во-первых тренируемся наверняка на документе в три строки, во-вторых задержка в две секунды, это очень большая задержка. Когда пойдешь по журналу, заходя интером в каждый док (ну чтобы там найти что либо, что в журнале не видно, обычная практика), то тормоза будут полная попа...
#75 by Cthulhu
: разве это проблема??? млг-файл не является фалом данных.. и никто не мешает после такой записи перед отменой транзакции выполнить маркер-запись о том, что документ в предыдущей записи не записан.. ведь лог то все равно анализировать надо текст-парсингом программным - так кто мешает делать такой парсинг с учетом "отменяющей" записи???
#76 by victuan1
Я тренируюсб на документах до 2 тыс. строк. Сделал по твоему рецепту тормозов нет, при переключение между закладками тратятся доли (!) секунды. Я и говорю, что это малюсенькая проблема, но дело в том, что парсю млг-файл я сторонней ВК, в которую очень нежелательно (трудоемко) вмешиваться.
#77 by Дядя Васька
А ты не забываешь о том что база лежит у тебя на винте и ты а ней один?
#78 by Дядя Васька
+ При таком раскладе и запрос в цикле летать будет...
#79 by victuan1
Во-вторых, при открытии документа не перегружается Таб. часть, пока я не перейду на закладку с нею (как в ТИС: закладки Шапка и Табл.часть) 1С только в терминале работает, тоже самое что и на локальном винте.
#80 by Дядя Васька
.1 Это уже лучше .2 Количество пользователей все же влияет весьма и весьма...
#81 by victuan1
Да и сеть тут не при чем. Т.к. при открытии документа таб. часть загружается в память. Поэтому тормоза будут только при ШТАТНОМ открытии документа, а не при манипуляциях между закладками.
#82 by Дядя Васька
А как она в эту память с сервака попадает? Святым духом что ли?
#83 by victuan1
Если заинтересован, то я выкладываю демку, а ты проводишь тест-драйв.
#84 by victuan1
Я имел ввиду, что она попадает в память при открытии документа в штатном режиме. Или ты хочешь сказать, что 1С подгружает строки ТЧ по мере ее листания на экране?
#85 by Дядя Васька
Ты не поверишь :) Ну если серьезно, то реквизиты дока конечно сразу грузит, а вот когда у тебя там еще что-то расчитваться будет, тут-то и начнется )
#86 by victuan1
Насчет вычисляемых реквизитов в ТЧ учту. Обычно я ими люблю баловаться.
#87 by Дядя Васька
Все любят... Ты как-нить в коде сообщить воткни, чтобы посмотреть какие считает. Офигеешь...
#88 by Дядя Васька
+ по идее только те что на экране, но разок еще и по всей тч проходится. Т.е. два раза подряд одно и то же делает.
#89 by victuan1
Я тут подумал и понял, что тормоза выч. реквизитов к моей схеме реализации ТЧ отношение не имеет. Ведь я загружаю/выгружаю в таб. часть хранимые реквизиты. А выч. реквизиты будут тормозить независимо простой это документ или с моими псевдоТЧ.
#90 by Дядя Васька
Ну в принципе да... Но проверять надо, тем же "сообщить". Весьма вероятно что при загрузке по всем пройдется, а потом еще раз по тем что на экране..
#91 by Cthulhu
: ну если любишь то на всякий случай (если ты этого ещё не учел): Относительно вычисляемых колонок в формах списка (журналах, формах списка справочников) и в многострочных частях. Существует весьма оптимизирующий скорость работы в таких случаях метод кэширования значений вычисляемых колонок. В общем и целом понятно, что речь идет том, чтобы не просто прямо вычислять эти значения, а ещё и о том, чтобы в функции вычисления сначала искать для тек.строки ранее вычисленное значение в кэш-ТЗ модуля формы и: если не найдено - вычислять и сохранять в этой кэш-ТЗ вычисленное значение, и возвращать(отображать) найденное (вычисленное ранее или только что) значение.. рефреш кєша программно реализуется чисткой кєш-ТЗ.. кроме того, єтот метод ОЧЕНЬ єффективен в случае нескольких(!!) вычисляемых колонок... ибо в таком случае следует помнить о следующем: при отрисовке формы вызов(отработка) формул вычисляемых колонок идут слева-направо.. поэтому только в первую (самую левую) вычисляемую колонку достаточно впихнуть вычисление и занесение в кэш-ТЗ (с несколькими же колонками, в соответствии с вычисляемыми колоками списка) всех вычисляемых колонок (и/или позиционирование в кэш-ТЗ на строке, соответствующей тек.строке списка), а в формулы остальных колонок - только выдергивание из тек.строки кэш-ТЗ значений реквизитов (тупо через "Возврат(<КэшТЗ>.<ИдКолонкиСоЗначением>);")
#92 by victuan1
Именно так я и сделал в своей конфигурации )) 1) Использую кэш значений 2) ставлю формулу в первую колонку, которая вычисялет значения и для последующих (пример реализации см. в ТИС Номенклатура.ФормаПодбора)
#93 by Torquader
Есть такая вещь Form.Refresh(ПризнакМодифицированности) - кажется, это именно то, что надо ?
#94 by victuan1
С чем боролись, на то и напоролись (С)
#95 by victuan1
Ну и как, мил человек, этот метод способен СНЯТЬ признак модифицированности?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С