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