powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Ошибка при записи документа (1С:7.7)
11 сообщений из 11, страница 1 из 1
Ошибка при записи документа (1С:7.7)
    #36957186
Taekwonder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте! Подскажите пожалуйста, не могу понять, с чем связана ошибка???
Ошибка - "Не выбран документ"
Код: plaintext
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.
Процедура ИзменитьУслуги(Знач ЭлемСтар, Знач ЭлемНов, Знач ТЗ)
	Перем Н, К, ДокКвит, Записано;
	
	//Найдём документы, в которых есть ссылки на старую услугу и поменяем на новую
	ДокКвит = СоздатьОбъект("Документ.Квитанция");
	ТЗ.ВыбратьСтроки();
	Пока ТЗ.ПолучитьСтроку() =  1  Цикл
	    Сообщить("Обрабатывается документ: " + ТЗ.Квитанция);
		
		ТекДок = ДокКвит.НайтиДокумент(ТЗ.Квитанция);
		Если ТекДок =  0  Тогда
			Сообщить("Квитанция  -  " + ТЗ.Квитанция + " не найдена!!!");
			Продолжить;  
		КонецЕсли;
		ТекДок = ДокКвит.ТекущийДокумент();
		
		//Произведу замену услуги, старую поменяю на новую.
		Записано =  0 ;
		ТекДок.ВыбратьСтроки();
		Пока ТекДок.ПолучитьСтроку() =  1  Цикл
			Если ТекДок.Услуга = ЭлемСтар Тогда
				ТекДок.Услуга = ЭлемНов;
				ТекДок.КодУслуги = ЭлемНов.ПолныйКод();  
				ТекДок.Записать(); //Ошибка - Не выбран документ. 
				Записано =  1 ;
			КонецЕсли;	
		КонецЦикла;	
	КонецЦикла; 
		
КонецПроцедуры
С чем может быть связано? Может быть с тем, что процедура выполняется в ТРАНЗАКЦИИ???
Если не применяю метод записать, то в отладчике мои изменения в документе фиксируются, а в реальности, когда открываю Документ.Квитанция - нифига!!!
Помогите плизз!
...
Рейтинг: 0 / 0
Ошибка при записи документа (1С:7.7)
    #36957302
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТекДок = ДокКвит.ТекущийДокумент();
это лишнее абсолютно...



ДокКвит.ВыбратьСтроки();
Пока ДокКвит.ПолучитьСтроку() = 1 Цикл

ДокКвит.Записать(); - накой ляд в цикле писать??
...
Рейтинг: 0 / 0
Ошибка при записи документа (1С:7.7)
    #36957337
Taekwonder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господин ПЖ,

Поставил потому что до этого писал по признаку - записано - после цикла. Результат в отладчике применяются изменения - открываю документ - ВСЁ ПО-СТАРОМУ!!! Не могу понять из-за чего такая ерунда???
...
Рейтинг: 0 / 0
Ошибка при записи документа (1С:7.7)
    #36957409
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
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.
Процедура ИзменитьУслуги(Знач ЭлемСтар, Знач ЭлемНов, Знач ТЗ)
	Перем Н, К, ДокКвит, Записано;

	ДокКвит = СоздатьОбъект("Документ.Квитанция");
	ТЗ.ВыбратьСтроки();
	Пока ТЗ.ПолучитьСтроку() =  1  Цикл
	    Сообщить("Обрабатывается документ: " + ТЗ.Квитанция);
		
		Если ДокКвит.НайтиДокумент(ТЗ.Квитанция) =  0  Тогда
			Сообщить("Квитанция  -  " + ТЗ.Квитанция + " не найдена!!!");
			Продолжить;  
		КонецЕсли;
	
		//Произведу замену услуги, старую поменяю на новую.
		Записано =  0 ;
		ДокКвит.ВыбратьСтроки();
		Пока ДокКвит.ПолучитьСтроку() =  1  Цикл
			Если ДокКвит.Услуга = ЭлемСтар Тогда
				ДокКвит.Услуга = ЭлемНов;
				ДокКвит.КодУслуги = ЭлемНов.ПолныйКод();  
				ДокКвит.Записать(); //Ошибка - Не выбран документ. 
				Записано =  1 ;
			КонецЕсли;	
		КонецЦикла;	
	КонецЦикла; 
		
КонецПроцедуры
...
Рейтинг: 0 / 0
Ошибка при записи документа (1С:7.7)
    #36957434
Taekwonder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaekwonderГосподин ПЖ,

Поставил потому что до этого писал по признаку - записано - после цикла. Результат в отладчике применяются изменения - открываю документ - ВСЁ ПО-СТАРОМУ!!! Не могу понять из-за чего такая ерунда???

Задам вопрос по-другому. Есть ли разница в записи всего документа (ДокХХХ.Записать()) и в записи табличной части документа (т.е. я изменил какую-то строку и хочу чтобы мои изменения применились), чтобы при открытии документа отображалась новая информация???
...
Рейтинг: 0 / 0
Ошибка при записи документа (1С:7.7)
    #36957489
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.sql.ru/forum/actualthread.aspx?tid=805807

эпидемия просто...

если что-то не пишется - читать ЖКК и много думать. Нету здесь ничего сокровенного и тайного
...
Рейтинг: 0 / 0
Ошибка при записи документа (1С:7.7)
    #36957535
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у них, у начинающих всегда эпидемия

да ... вот только не знаю кто я теперь ... ростовчанин или нет
...
Рейтинг: 0 / 0
Ошибка при записи документа (1С:7.7)
    #36957546
Taekwonder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господин ПЖ,

Я изначально эту тему читал, и ничего по моей проблеме нету.
1. Типы чётко соответствуют.
2. На Док.Запись теперь уже не ругается.
3. Хоть и выглядит как чудеса, но это действительно так!!! При открытии нечего не меняется, а показывает старое значение. Как будто и не записывалось, не менялось.(((
...
Рейтинг: 0 / 0
Ошибка при записи документа (1С:7.7)
    #36957551
Taekwonder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leaf,

Почему у вас сомнения в городопринадлежности:))?
...
Рейтинг: 0 / 0
Ошибка при записи документа (1С:7.7)
    #36957632
Taekwonder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Taekwonder,

Подскажите пожалуйста, почему когда поменял код на:
Код: plaintext
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.
32.
33.
34.
35.
36.
37.
38.
Процедура ИзменитьУслуги(Знач ЭлемСтар, Знач ЭлемНов, Знач ТЗ)
	Перем Н, К, ДокКвит, Записано, ТЗСтрок;
	
	//Найдём документы, в которых есть ссылки на старую услугу и поменяем на новую
	ДокКвит = СоздатьОбъект("Документ.Квитанция");
	ТЗСтрок = СоздатьОбъект("ТаблицаЗначений");
	
	ТЗ.ВыбратьСтроки();
	Пока ТЗ.ПолучитьСтроку() =  1  Цикл
	    Сообщить("Обрабатывается документ: " + ТЗ.Квитанция);
		
		ТекДок = ДокКвит.НайтиДокумент(ТЗ.Квитанция);
		Если ТекДок =  0  Тогда
			Сообщить("Квитанция  -  " + ТЗ.Квитанция + " не найдена!!!");
			Продолжить;  
		КонецЕсли;
		ТекДок = ДокКвит.ТекущийДокумент();
		
		ТекДок.ВыгрузитьТабличнуюЧасть(ТЗСтрок);
		
		Записано =  0 ;
		ТЗСтрок.ВыбратьСтроки();
		Пока ТЗСтрок.ПолучитьСтроку() =  1  Цикл
			Если ТЗСтрок.Услуга = ЭлемСтар Тогда
				ТЗСтрок.Услуга = ЭлемНов;
				ТЗСтрок.КодУслуги = СтрЗаменить(ЭлемНов.ПолныйКод(), "/", ".");
				Записано =  1 ;
			КонецЕсли;	
		КонецЦикла;
		
		Если Записано =  1  Тогда
			ДокКвит.УдалитьСтроки();
			ДокКвит.ЗагрузитьТабличнуюЧасть(ТЗСтрок);
			ДокКвит.Записать();
		КонецЕсли;
		
	КонецЦикла; 
		
КонецПроцедуры

То всё заработало и мои изменения стали применяться?
Т.е. всегда нужно табличную часть менять через ТаблицуЗначений???
...
Рейтинг: 0 / 0
Ошибка при записи документа (1С:7.7)
    #36957964
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Taekwonder попробуйте измененный код из вашего первого поста
Код: plaintext
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.
Процедура ИзменитьУслуги(Знач ЭлемСтар, Знач ЭлемНов, Знач ТЗ)
	Перем Н, К, ДокКвит;
	
	//Найдём документы, в которых есть ссылки на старую услугу и поменяем на новую
	ДокКвит = СоздатьОбъект("Документ.Квитанция");
	ТЗ.ВыбратьСтроки();
	Пока ТЗ.ПолучитьСтроку() =  1  Цикл
	    Сообщить("Обрабатывается документ: " + ТЗ.Квитанция);
		Если ДокКвит.НайтиДокумент(ТЗ.Квитанция)= 1  Тогда
                          Если ДокКвит.КоличествоСтрок()= 0  Тогда Продолжить; КонецЕсли;
		    Пров=ДокКвит.Проведен();
                          Если Пров= 1  Тогда
                              ДокКвит.СделатьНепроведенным();
                          КонецЕсли;
                          Если ДокКвит.ВыбратьСтроки()> 0  Тогда
                                Пока ДокКвит.ПолучитьСтроку() =  1  Цикл
			   Если ДокКвит.Услуга = ЭлемСтар Тогда
				ДокКвит.Услуга = ЭлемНов;
				ДокКвит.КодУслуги = ЭлемНов.ПолныйКод();  
			   КонецЕсли;	
		          КонецЦикла;
                                 ДокКвит.Записать();
                                 Если Пров= 1  Тогда ДокКвит.Провести(); КонецЕсли;
                          КонецЕсли;
                      Иначе
                           Сообщить("Квитанция  -  " + ТЗ.Квитанция + " не найдена!!!");
	                Продолжить;
                      КонецЕсли;
	КонецЦикла; 
КонецПроцедуры
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Ошибка при записи документа (1С:7.7)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]