Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Удаление строк открытого документа через контекст (число прочтений - 18521 )
kbakaras
Junior Member
**
Отсутствует


Ребята, давайте жить дружно!

Сообщений: 20
Зарегистрирован: 22. Июня 2006
Пол: Мужской
Удаление строк открытого документа через контекст
22. Июня 2006 :: 21:51
Печать  
Подскажите, есть ли способ удалять/добавлять строки в открытом документе из вызванного им класса?
Я пробовал делать это вызывая объявленный в модуле формы метод "УдалениеСтроки" с помощью "ВыполнитьПроцедуру" Объекта "Сервис". Работает, но не всегда.
Ситуация такая: в процедуре модуля формы документа создаётся класс, который открывает форму обработки. На форме обработки есть кнопка, по нажатию которой нужно обновлять строки ТЧ открытого документа. Через ВыполнитьПроцедуру работает, но только если перед нажатием заветной кнопки активизировать форму документа, а потом опять вернуться на форму обработки. Иногда работает сразу, но, по ощущениям, в том случае, если форма документа почти не закрыта формой вызванной обработки. Вобщем, тёмные электрические силы.

Через подбор -- не предлагать, это я, слава Богу, умею.
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #1 - 22. Июня 2006 :: 22:22
Печать  
Эээ... а не проще передать в класс Контекст и работать именно с ним?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #2 - 23. Июня 2006 :: 06:43
Печать  
Только так и нужно. Т.к. это наиболее прозрачный и простой способ Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kbakaras
Junior Member
**
Отсутствует


Ребята, давайте жить дружно!

Сообщений: 20
Зарегистрирован: 22. Июня 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #3 - 23. Июня 2006 :: 08:18
Печать  
Через контекст не получается. Если я правильно всё понимаю, в 1с добавлять/удалять строки в открытом документе штатными средствами можно только из предопределённых процедур и из обработчиков реквизитов формы. Суть вопроса заключалась в том, а есть ли в 1c++ или в FormExt возможности обойти это ограничение, причём, работающие стабильно.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Удаление строк открытого документа через контекст
Ответ #4 - 23. Июня 2006 :: 08:34
Печать  
Я делал не из класса, а из форм отчетов и обработок.

В документе определял процедуру (Обработчик());
В обработку при вызове передавал контекст документа (конт).
В обработке для заполнения документа вызывал Обработчик через этот контекст и передавал ТЗ.
По этой ТЗ заполнял МНЧ.

Соответственно, чтобы не обламываться с добавлением строк в документе, добавлена простая процедура
Система::EnableNewLine(Конт), пока так. Позволяет добавлять строки в контексте Конт.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kbakaras
Junior Member
**
Отсутствует


Ребята, давайте жить дружно!

Сообщений: 20
Зарегистрирован: 22. Июня 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #5 - 23. Июня 2006 :: 08:42
Печать  
kms, а можно немного подробнее:
1. Как вызывается метод "Обработчик()"? Через "ВыполнитьПроцедуру()"?
2. Можно пример вызова "Система::EnableNewLine(Конт)"? В каком месте нужно его выполнять?
3. Основные проблемы возникают в связи с необходимостью именно удаления строк.
Заранее спасибо.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Удаление строк открытого документа через контекст
Ответ #6 - 23. Июня 2006 :: 08:52
Печать  
Да все просто, по памяти напишу, смысл такой:

В обработке пишу:
Код
Выбрать все
// конт - это сохраненный контекст документа
Если ТипЗначения(конт) = 100 Тогда
    // контекст жив
    конт.Обработчик(ТЗ); // передаем данные
КонецЕсли;
 



В документе:
Код
Выбрать все
Процедура Обработчик(__тз)
    // разрешим удаление
    _сист =СоздатьОбъект("Система");
    _сист.EnableNewLine(Контест);

    // здесь нужно установить модифицированность, сама не установится
    Форма.Обновить(1);

    // дальше обработак данных
    УдалитьСтроки();
    ...
КонецПроцедуры
 



EnableNewLine - это некий тестовый метод, недокументированный и возможно подлежащий перемещению в другой объект 1cpp.
Если будет работать - дай мне знать, если нет - тоже, плз.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kbakaras
Junior Member
**
Отсутствует


Ребята, давайте жить дружно!

Сообщений: 20
Зарегистрирован: 22. Июня 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #7 - 23. Июня 2006 :: 09:09
Печать  
kms, не получилось. Ругается,
Код
Выбрать все
_сист.EnableNewLine(Контекст);
{Документ.ПриходнаяНакладная.Форма.Модуль(40)}: Поле агрегатного объекта не обнаружено (EnableNewLine)
 


У меня 1c++ версии 2022, может нужна какая-то другая?
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Удаление строк открытого документа через контекст
Ответ #8 - 23. Июня 2006 :: 09:14
Печать  
Возьми для тестов nightbuild, это недавно добавлено, в пределах месяца.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kbakaras
Junior Member
**
Отсутствует


Ребята, давайте жить дружно!

Сообщений: 20
Зарегистрирован: 22. Июня 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #9 - 23. Июня 2006 :: 09:14
Печать  
Вообще я нашёл способ. Немного мудрёный, но работает. Все возможности полностью документированы.
Через подбор  Улыбка.

В модуле формы документа создаётся метод "ОткрытиеФормыДляПодбора". Он вызывается из созданного класса в методе "ПоказатьФорму" через "ВыполнитьПроцедуру". В качестве параметров передаётся имя обработки и ссылка на сам класс. Метод "ОткрытиеФормыДляПодбора" открывает для подбора обработку по имени, и передаёт в класс контекст открытой для подбора формы. Дальше, наверное, понятно. Если кого интересует подробнее, пишите.
  
Наверх
 
IP записан
 
kbakaras
Junior Member
**
Отсутствует


Ребята, давайте жить дружно!

Сообщений: 20
Зарегистрирован: 22. Июня 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #10 - 23. Июня 2006 :: 09:16
Печать  
Обязательно попробую nightbuild, но позже. Сейчас время поджимает. Спасибо!
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Удаление строк открытого документа через конте
Ответ #11 - 23. Июня 2006 :: 09:19
Печать  
kbakaras писал(а) 23. Июня 2006 :: 09:14:
Вообще я нашёл способ. Немного мудрёный, но работает. Все возможности полностью документированы.
Через подбор  Улыбка.

Чего только наши люди не придумают, чтобы не строить дороги Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kbakaras
Junior Member
**
Отсутствует


Ребята, давайте жить дружно!

Сообщений: 20
Зарегистрирован: 22. Июня 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #12 - 23. Июня 2006 :: 09:26
Печать  
Да, всё было б гораздо проще, если бы не было этих граблей с добавлением/удалением строк. Просто вызывать метод через контекст. В 1с 7.7. много подобных заморочек.
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #13 - 23. Июня 2006 :: 13:07
Печать  
Пару лет назад поднимался уже подобный вопрос.
Насколько я помню, для добавления/удаления строк ТЧ через контекст достаточно было просто загрузить 1C++.
Нашел вот это: http://itland.ru/forum//lofiversion/index.php/t1120.html
Может покажешь свой код полностью?
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kbakaras
Junior Member
**
Отсутствует


Ребята, давайте жить дружно!

Сообщений: 20
Зарегистрирован: 22. Июня 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #14 - 23. Июня 2006 :: 13:14
Печать  
1c++ у меня ввсё врямя загружен. Это не помогает.

А какой код интересует? Который не работал? Или который сейчас работает?
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #15 - 23. Июня 2006 :: 13:51
Печать  
который не работал
  
Наверх
www  
IP записан
 
kbakaras
Junior Member
**
Отсутствует


Ребята, давайте жить дружно!

Сообщений: 20
Зарегистрирован: 22. Июня 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #16 - 23. Июня 2006 :: 14:41
Печать  
Неработающий код уже не сохранился. Напишу его аналогичный по смыслу прототип:
В модуле формы документа:
[code]
СП=СоздатьОбъект("СписокЗначений");
СП.ДобавитьЗначение(Контекст, "КонтекстДокумента");
ОткрытьФорму("Обработка.РаботаСШтрихкодами", СП);
[/code]

В модуле формы обработки:
[code]
Перем КонтекстДокумента;

Процедура ПриОткрытии()
    КонтекстДокумента=Форма.Параметр.Получить("КонтекстДокумента");
КонецПроцедуры

Процедура ОбновитьДокумент()
    КонтекстДокумента.УдалитьСтроки();
КонецПроцедуры
[/code]
Это самый простой из приходящих в голову неработающих вариантов. Он заканчивается сообщением "Нет возможности удалить строку".

Второй вариант был такой:
В модуле формы документа:
[code]
СП=СоздатьОбъект("СписокЗначений");
СП.ДобавитьЗначение(Контекст, "КонтекстДокумента");
ОткрытьФорму("Обработка.РаботаСШтрихкодами", СП);
...
Процедура ОбновитьТЧ()
    УдалитьСтроки();
КонецПроцедуры
[/code]
В модуле формы обработки:
[code]
Перем КонтекстДокумента;

Процедура ПриОткрытии()
    КонтекстДокумента=Форма.Параметр.Получить("КонтекстДокумента");
КонецПроцедуры

Процедура ОбновитьДокумент()
    глСервисРасшФормы.ВыполнитьПроцедуру(КонтекстДокумента, "ОбновитьТЧ");
КонецПроцедуры
[/code]
Этот способ работал, но нестабильно (см. выше подробности).
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #17 - 23. Июня 2006 :: 15:36
Печать  
Вот это:
Код
Выбрать все
СП=СоздатьОбъект("СписокЗначений");
СП.ДобавитьЗначение(Контекст, "КонтекстДокумента");
ОткрытьФорму("Обработка.РаботаСШтрихкодами", СП); 


каким образом вызывается?
Если способом, отличным от нажатия кнопки - то ничего удивительного.
  
Наверх
www  
IP записан
 
kbakaras
Junior Member
**
Отсутствует


Ребята, давайте жить дружно!

Сообщений: 20
Зарегистрирован: 22. Июня 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #18 - 23. Июня 2006 :: 15:43
Печать  
В оригинале, в форме документа из метода, вызываемого при нажатии кнопки создавался объект класса, в который передавался контекст документа.  Далее вызывался метод объекта класса, который открывал форму обработки и передавал ей контекст документа.
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #19 - 23. Июня 2006 :: 17:07
Печать  
kbakaras писал(а) 23. Июня 2006 :: 15:43:
Далее вызывался метод объекта класса, который открывал форму обработки и передавал ей контекст документа.

Вот это происходило кнопкой или как-то еще?
  
Наверх
www  
IP записан
 
kbakaras
Junior Member
**
Отсутствует


Ребята, давайте жить дружно!

Сообщений: 20
Зарегистрирован: 22. Июня 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #20 - 23. Июня 2006 :: 17:15
Печать  
И создание объекта класса и вызов его метода для отображения обработки производились в одном методе документа последовательно. Этот метод вызывался при нажатии кнопки в документе.
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #21 - 23. Июня 2006 :: 17:44
Печать  
вот это:[quote author=kbakaras link=1151013085/0#16 date=1151073697][code]Процедура ОбновитьДокумент()
   глСервисРасшФормы.ВыполнитьПроцедуру(КонтекстДокумента, "ОбновитьТЧ");
КонецПроцедуры[/code][/quote] по моему излишество.
Вызов методов через контекст должен работать и так по причине наличия TurboBL в составе 1С++.
Заинтересовался, сейчас даже попробую.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #22 - 23. Июня 2006 :: 18:31
Печать  
[quote author=steban link=1151013085/20#21 date=1151084659]вот это:[quote author=kbakaras link=1151013085/0#16 date=1151073697][code]Процедура ОбновитьДокумент()
    глСервисРасшФормы.ВыполнитьПроцедуру(КонтекстДокумента, "ОбновитьТЧ");
КонецПроцедуры[/code][/quote] по моему излишество.
Вызов методов через контекст должен работать и так по причине наличия TurboBL в составе 1С++.
Заинтересовался, сейчас даже попробую.
[/quote]


Дык оно и работает... Я не понимаю зачем было огород городить...
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Удаление строк открытого документа через конте
Ответ #23 - 23. Июня 2006 :: 19:15
Печать  
steban писал(а) 23. Июня 2006 :: 13:07:
Пару лет назад поднимался уже подобный вопрос.
Насколько я помню, для добавления/удаления строк ТЧ через контекст достаточно было просто загрузить 1C++.
Нашел вот это: http://itland.ru/forum//lofiversion/index.php/t1120.html
Может покажешь свой код полностью?

На техническом форуме в ветке "предложения по FormEx" я в принципе раскрыл тему, почему возможность добавления строк и стабильность результата через контекст документа зависит от релиза и версии FormEx.
Посты 45, 46, 47.
Суть сводится к вызову EnableNewLine для соответстующего CDocContext.

Собственно, меня интересует стабильность. Я так думаю. Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Удаление строк открытого документа через контекст
Ответ #24 - 23. Июня 2006 :: 19:26
Печать  
Да, собственно, могу и сюда забросить:

Начальное описание проблемы: http://itland.ru/forum/index.php?act=ST&f=8&t=15702&st=0#entry83241

Разбор полетов:
Цитата:
По нарушению контекста.

Проблема, как всегда, оказалась рядом.
Текущая схема такая:

В нормальных условиях при запуске обработки из документа по кнопке или из меню СЗ процедуры отрабатывают в следующем порядке:
Цитата:
ПриНажатииЛевойКнопки - форма1
ПриОтжатииЛевойКнопки - форма1
ПриИзмененииРазмераОкна - форма2
ПослеСозданияФормы -форма2
ПослеОткрытия - форма2
ПриДвиженииМыши - форма1
ПриДвиженииМыши - форма1


При запуске же через Сервис::ВыбратьЗначение() паразитные хуки ПриДвиженииМыши в форме1 не отрабатываются.
В итоге, callback не может удалять строки.

То же самое происходит, если закомментировать хук "ПриДвиженииМыши" - все варианты вызова обработчика будут обламываться с удалением строк.
До тех пор, пока не будет вызвана любая функция в _CallModuleProc() в контексте форма1 (например. по щелчку мыши или по движению, если хук не закомментарен).
Тогда начинают работать все методы вызова, в том числе и из меню.

То же самое, когда мы раскомментариваем вызовы "ПослеОбновленияФормы".

В итоге, думаю, вся причина вот в этом полезном коде в _CallModuleProc():
Цитата:
for(int i = 0; i<pCont->GetSize(); i++)
{
     pCont0 = pCont->GetContext(i);
     if(!strcmp(pCont0->GetRuntimeClass()->m_lpszClassName,"CDocContext"))
           ((CDocContext*)pCont0)->SetEnableNewLine(1);
}


alf, придумай, плз, как грамотно его вызвать в контексте вызывающей формы после запуска вызываемой формы.

P.S. С этим, видимо, связана и нестабильность появления проблемы:
при разном положении форм, иногда у меня отрабатывались хуки на "ПриДвиженииМыши" в вызывающей форме, а иногда нет.
Если привильно сделать принудительный SetEnableNewLine(1), все будет работать стабильно.


Возможное решение мной уже приведено в начальных постах.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #25 - 24. Июня 2006 :: 14:12
Печать  
[quote author=steban link=1151013085/20#21 date=1151084659]вот это:[quote author=kbakaras link=1151013085/0#16 date=1151073697][code]Процедура ОбновитьДокумент()
    глСервисРасшФормы.ВыполнитьПроцедуру(КонтекстДокумента, "ОбновитьТЧ");
КонецПроцедуры[/code][/quote] по моему излишество.
Вызов методов через контекст должен работать и так по причине наличия TurboBL в составе 1С++.
Заинтересовался, сейчас даже попробую.
[/quote]

Хмм.. И у меня сегодня возникла необходимость воспользоваться этим методом, но...

Суть в следующем. В абстрактном классе создается Тулбар::Активикс.
При смене закладки мне надо передать этому классу список кнопок, причем для каждой копки надо:
1. Иконку
2. Тултип
3. Строкой имя процедуры класса (где был создан активикс) для выполнения.

Собственно возникла проблема как вызвать процедуру, имея только ее имя. Для обработки или документа проблемы нет, а для классов не сработало.

Или у меня руки не тем концом?
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #26 - 24. Июня 2006 :: 14:56
Печать  
Решил с помощью Делегата  Улыбка
  
Наверх
 
IP записан
 
kbakaras
Junior Member
**
Отсутствует


Ребята, давайте жить дружно!

Сообщений: 20
Зарегистрирован: 22. Июня 2006
Пол: Мужской
Re: Удаление строк открытого документа через конте
Ответ #27 - 26. Июня 2006 :: 13:06
Печать  
В документации к 1с++ мне не попадалось о том, что можно вызывать методы контекста прям через точку. Поэтому и городил огород. Спасибо. Я переделал на прям через точку. Код выглядит лучше и не надо списки значений создавать.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Удаление строк открытого документа через контекст
Ответ #28 - 16. Марта 2012 :: 14:28
Печать  
Решился как-то вопрос с удалением строк через контекст? Или другим каким-то методом? Так, чтобы не менять модуль документа. Хотел по комбинации клавиш удалять строки из табличной части документа. А тут оказался облом с контекстом... Т.е. типа нажал Ctrl+Del в документе, перехватил нажатие, контекст получил.... и облом....
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Удаление строк открытого документа через контекст
Ответ #29 - 17. Марта 2012 :: 14:36
Печать  
alyuev писал(а) 16. Марта 2012 :: 14:28:
Решился как-то вопрос с удалением строк через контекст? Или другим каким-то методом? Так, чтобы не менять модуль документа.
....

Поищи по форуму описание использования недокументырованых методов "StartBatch" и "EndBatch" объекта "Система" (последний раз о них писал kms и конфигурацию с примером выкладывал). Помоему это то, что тебе нужно.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Удаление строк открытого документа через контекст
Ответ #30 - 19. Марта 2012 :: 08:44
Печать  
Угу, спасибо. Вот ветка по обсуждению данного вопроса http://www.1cpp.ru/forum/YaBB.pl?num=1304685410/all.

Я сделал удаление всех строк таким методом:

Код
Выбрать все
ТЗ = СоздатьОбъект("ТаблицаЗначений");
Конт.ЗагрузитьТабличнуюЧасть(ТЗ);
Конт.Форма.Обновить(); 

  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Удаление строк открытого документа через контекст
Ответ #31 - 19. Марта 2012 :: 09:43
Печать  
А че, конт.УдалитьСтроки() не работает разве с загруженным формексом ?
  
Наверх
 
IP записан
 
OlegY
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 17
Местоположение: Донецк
Зарегистрирован: 21. Августа 2022
Пол: Мужской
Re: Удаление строк открытого документа через контекст
Ответ #32 - 20. Мая 2024 :: 20:02
Печать  
Eprst писал(а) 19. Марта 2012 :: 09:43:
А че, конт.УдалитьСтроки() не работает разве с загруженным формексом ?

Тоже столкнулся с кривой работой метода УдалитьСтроки().
  Если вызвать этот метод из кнопки на форме, то 1с вываливалась. Попытка использовать конт.УдалитьСтроки() в глобальном модуле ничем не помогла. Тоже пришлось воспользоваться методом Конт.ЗагрузитьТабличнуюЧасть(ТЗ).
После этого вылеты прекратились. Причём такое поведение(вылеты 1с), наблюдалось только, если все строки документа введены сканером ШК, т.е. через НоваяСтрока(). Если хотя бы одна строка была введена интерактивно, то вылета 1с при применении метода  УдалитьСтроки() не наблюдалось.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать