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


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Не корректная работа с табличной частью докумета через контекст
06. Мая 2011 :: 12:36
Печать  
Столкнулся с ситуацией:
Имеется документ "X". Он является док. основанием для документа "Y". Причем заполнение реквизитов "Y" происходит из формы "X". Кусок модуля формы "X":
Код
Выбрать все
		ОткрытьФорму("Документ.Y",Конт,ТекущийДокумент());
		Конт.ДокументОснование=ТекущийДокумент();
		Конт.ДатаДок=ДатаДок;
		Конт.Фирма = Фирма;

		ВыбратьСтроки();
		Пока ПолучитьСтроку()=1 Цикл
			Конт.НоваяСтрока();
			Конт.Товар=Товар;
			Конт.Количество=КолВо;
		КонецЦикла;
 



При выполнении этого кода должна появиться форма нового док. "Y", с заполненными реквизитами шапки и с заполненной табличной частью.

При использовании 1С++ версии "1.8.1.6" все так и происходит.
При использовании 1С++ версии выше "2.5" (проверялось на "2.5.0.7","3.2.1.0","3.2.3.12") табличная часть не заполняется, при этом в отладчике после "Конт.НоваяСтрока();" метод "Конт.КоличествоСтрок()" возвращает "0". Использование "ВыгрузитьТабличнуюЧасть/ЗагрузитьТабличнуюЧасть" так же не дает результата.
Совершенно ясно, что можно переписать код "по правильному" - заполнение реквизитов делать в док "Y" - интересен сам факт того что табличная часть в данном случае не заполняется.  Озадачен
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не корректная работа с табличной частью докумета через контекст
Ответ #1 - 06. Мая 2011 :: 12:42
Печать  
Включи настройку ТурбоБЛ (или TurboBL).
Поиск по форуму или доке 1С++ тебе поможет
  

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


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Не корректная работа с табличной частью докумета через контекст
Ответ #2 - 06. Мая 2011 :: 12:47
Печать  
Сейчас "3.2.3.12":
Информация о настройках:

EnableHookEventsGroupContext: 0
EnableCheckType: 0
EnableDebugging: 0
EnableOptimization: 1
EnableTableSourceTable: 1
EnableTurboBL: 1

Т.е., насколько я понимаю, - TurboBL включен...
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Не корректная работа с табличной частью докумета через контекст
Ответ #3 - 06. Мая 2011 :: 13:09
Печать  
формекс то загрузи, именно он исправляет ошибку недоступности табличной части при работе с контекстом документа.
а не 1cpp (у тебя в старой версии 1cpp формекс был встроен в неё, щас - это отдельная ВК)
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не корректная работа с табличной частью докумета через контекст
Ответ #4 - 06. Мая 2011 :: 13:13
Печать  
Eprst писал(а) 06. Мая 2011 :: 13:09:
формекс то загрузи, именно он исправляет ошибку недоступности табличной части при работе с контекстом документа.
а не 1cpp (у тебя в старой версии 1cpp формекс был встроен в неё, щас - это отдельная ВК)

ФормЕкс точно имеет эту фичу, но
ИМХО вроде в 1С++ эта фича также была встроена.
Неужели нет?
  

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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Не корректная работа с табличной частью докумета через контекст
Ответ #5 - 06. Мая 2011 :: 13:15
Печать  
artbear писал(а) 06. Мая 2011 :: 13:13:
Неужели нет?


к сожалению, неа..
Улыбка
  
Наверх
 
IP записан
 
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Не корректная работа с табличной частью докумета через контекст
Ответ #6 - 06. Мая 2011 :: 13:39
Печать  
хм.. ФормЕкс загрузил (версия "2.0.5.99")... ситуация не изменилась...  Печаль
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Не корректная работа с табличной частью докумета через контекст
Ответ #7 - 06. Мая 2011 :: 13:42
Печать  
В чистом 1cpp вопрос решабелен с помощью скобок Система:: StartBatch / EndBatch.
Но лучше пошаманить с дизайном или реализацией.
По-моему, ЗагрузитьТабличнуюЧасть работает и без этого.
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не корректная работа с табличной частью докумета через контекст
Ответ #8 - 06. Мая 2011 :: 13:46
Печать  
zar писал(а) 06. Мая 2011 :: 13:39:
хм.. ФормЕкс загрузил (версия "2.0.5.99")... ситуация не изменилась...  Печаль

Что-то не так у тебя Печаль
При простой загрузке ФормЕкс фича работы с таб.частью через контекст работает 100%
  

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


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Не корректная работа с табличной частью докумета через контекст
Ответ #9 - 06. Мая 2011 :: 13:48
Печать  
Код
Выбрать все
		ОткрытьФорму("Документ.Y",Конт,ТекущийДокумент());
		Конт.ДокументОснование=ТекущийДокумент();
		Конт.ДатаДок=ДатаДок;
		Конт.Фирма = Фирма;

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

		ВыбратьСтроки();
		Пока ПолучитьСтроку()=1 Цикл
			ВремТЗ.НоваяСтрока();
			ВремТЗ.Товар=Товар;
			ВремТЗ.Количество=КолВо;
		КонецЦикла;

		Если ВремТЗ.КоличествоСтрок() > 0 Тогда
		    Конт.ЗагрузитьТабличнуюЧасть(ВремТЗ);
		КонецЕсли;

 



данный код так же не работает (ни без, ни с ФормЭксом)
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Не корректная работа с табличной частью докумета через контекст
Ответ #10 - 06. Мая 2011 :: 13:50
Печать  
Ну ёпт..

Конт.Форма.Обновить(0); воткни в конец..

Наслаждайся.
  
Наверх
 
IP записан
 
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Не корректная работа с табличной частью докумета через контекст
Ответ #11 - 06. Мая 2011 :: 13:57
Печать  
мда... я в коде не написал, но "Конт.Форма.Обновить();" после этого дела УЖЕ имеется... Улыбка т.е. не в этом дело... Печаль
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Не корректная работа с табличной частью докумета через контекст
Ответ #12 - 06. Мая 2011 :: 14:08
Печать  
Как проверяешь, что строк нет ?

  
Наверх
 
IP записан
 
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Не корректная работа с табличной частью докумета через контекст
Ответ #13 - 06. Мая 2011 :: 14:08
Печать  
1) визуально
2) в отладчике
  
Наверх
 
IP записан
 
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Не корректная работа с табличной частью докумета через контекст
Ответ #14 - 06. Мая 2011 :: 14:10
Печать  
в отладчике метод "Конт.НоваяСтрока()" никак не влияет на "Конт.КоличествоСтрок()"
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать