Имя: Пароль:
1C
1С v8
Табличная часть документа
,
0 Botanik
 
23.08.11
21:26
Добрый день товарищи программисты. Подскажите такую штуку:
Есть Документ в котором табличная часть с колонкой, которая имеет два типа. Строка и СправочникСсылка. Пользователь заполняя эту табличку ищет нужное значение в справочнике, если не находит, пишет его строкой. Проводит и закрывает документ. Далее включается моя обработка, она проходит по таблице документа, ищет текстовые значения, создает элемент справочника по значению текстовой строки. И потом требуется заменить текстовую строку на элемент справочника, вот тут то и бяка. Ничего не заменяет. Приведу кусок кода с попыткой это сделать:
ТЗ - это выгрузка из той самой Таблицы документа.

ЗаказОбъект = ЗаказСсылка.ПолучитьОбъект();
   Для Каждого СтрокаДоставки Из ЗаказОбъект.Доставка Цикл
       Если ТипЗнч(СтрокаДоставки.ТочкаДоставки) = Тип("Строка") Тогда
           СтрокаТЗ = ТЗ.Найти(СтрокаДоставки.ТочкаДоставки,"Наименование");
           Если ЗначениеЗаполнено(СтрокаТЗ) Тогда
               СтрокаДоставки.ТочкаДоставки = СтрокаТЗ.ТочкаДоставки;
           КонецЕсли;
       КонецЕсли;
   КонецЦикла;
   ЗаказОбъект.Записать();
1 Wobland
 
23.08.11
21:29
это ты хвастаешься? "создает элемент справочника" я тут не увидел. это по идее надо делать после Если ЗначениеЗаполнено(СтрокаТЗ) Тогда
2 lubja
 
23.08.11
21:29
а что отладчик говорит?
3 ДенисЧ
 
23.08.11
21:30
ы условие входит? Отладчиком смотрел?
Вроде Найти() возвращает Неопределено, если не находит...
4 Wobland
 
23.08.11
21:30
(2) вот сразу в отладчик! а подумать? ;)
5 lubja
 
23.08.11
21:30
(1) кстати, да...
6 Wobland
 
23.08.11
21:30
(3) ага! но идея (1) работает, не?
7 lubja
 
23.08.11
21:30
(4) сначала отладчик, потом думать)
8 Wobland
 
23.08.11
21:31
(7) ну нет у меня отладчика сейчас, приходится думать. уж так научен программистами советской закалки ;)
9 Domovoi
 
23.08.11
21:31
(3) 0
10 Wobland
 
23.08.11
21:32
как быстро растёт ветка. а ведь у нас уже пол-первого. я в такие минуты бурления здесь не замечал ;)
11 Планета Обезьян
 
23.08.11
21:32
Кто сказал Отладчик???
12 lubja
 
23.08.11
21:32
(8) думать вредно... на больную-то голову... )))
13 lubja
 
23.08.11
21:33
(10) это потому что я здесь)
14 Wobland
 
23.08.11
21:33
(12) о, научи! сделай мою голову больной! я сейчас в физиологическом смысле. налей, а?
15 Wobland
 
23.08.11
21:33
+(14) в психиатрическом по мне многие клиники плачут ;)
16 lubja
 
23.08.11
21:35
(15) я училась в желтом доме... так что, видимо, там все и случилось... ))
17 Планета Обезьян
 
23.08.11
21:35
настоящие программисты не пользуются отладчиком, они компилируют код на листочке
18 Wobland
 
23.08.11
21:36
(16) теперь ты считаешь себя Отладчиком?
19 lubja
 
23.08.11
21:39
(17) ага... помню я такие эксперименты в желтом доме....
(18) теперь я адинэсю... (
20 Wobland
 
23.08.11
21:40
(19) приезжай в Сибирь, научу сить и мечтать о море
21 Botanik
 
23.08.11
21:41
Все находит то самое "Найти".
Отладчик тут ничего и не скажет.
Тип колонки таблицы,строка в настоящий момент, я туда пытаюсь впихнуть справочник.Ссылка, которым эта колонка тоже может быть. Как мне впихнуть справочник в тип колонки Строка\Справочник, которая сейчас строка? Кто знает?
22 Wobland
 
23.08.11
21:42
(21) >Как мне впихнуть справочник, которая сейчас строка?
присвой туда СправочникСсылка
23 Wobland
 
23.08.11
21:42
+(22) предварительно создав. я правильно уловил?
24 lubja
 
23.08.11
21:43
(20) "сить" - что это? или правильнее - как это? :)
25 Планета Обезьян
 
23.08.11
21:44
(21)сначала установит значение неопределенно
26 Wobland
 
23.08.11
21:45
(24) а ты приезжай, я не такое могу ;) сиплюсплюсить, если угодно
27 Botanik
 
23.08.11
21:45
ЗаказОбъект = ЗаказСсылка.ПолучитьОбъект();
   Для Каждого СтрокаДоставки Из ЗаказОбъект.Доставка Цикл
       Если ТипЗнч(СтрокаДоставки.ТочкаДоставки) = Тип("Строка") Тогда
           СтрокаТЗ = ТЗ.Найти(СтрокаДоставки.ТочкаДоставки,"Наименование");
           Если ЗначениеЗаполнено(СтрокаТЗ) Тогда
               СтрокаДоставки.ТочкаДоставки = СтрокаТЗ.ТочкаДоставки;
           КонецЕсли;
       КонецЕсли;
   КонецЦикла;
   ЗаказОбъект.Записать();
///////
ТЗ - Это Таблица значений, значения, справочникСсылка
28 lubja
 
23.08.11
21:46
(26) сиплюсплюсить меня не научили... могу тока делфить... и то с этой 1с забыла как...
29 Botanik
 
23.08.11
21:47
Нужно что бы заменилась строка на Справочник ссылка
30 Wobland
 
23.08.11
21:48
(28) выплюнь срочно!
(29) дык находи в справочнике по наименованию, а не в ТЗ. в ТЗ ты же ищещь строку:  Если ТипЗнч(СтрокаДоставки.ТочкаДоставки) = Тип("Строка")
31 Планета Обезьян
 
23.08.11
21:48
(29)посмотри в отладчике как сбросить ОграничениеТипа
32 lubja
 
23.08.11
21:49
(29) по идеи, код
СтрокаДоставки.ТочкаДоставки = ТвояСсылкаНаСправочник
должна сработать, если в ТвоейСсылкеНаСправочник реально ссылка...
33 Wobland
 
23.08.11
21:49
(28) а хочешь, я расскажу тебе о SamllTalk'е? ;)
34 Wobland
 
23.08.11
21:51
коллеги! прострелите мне сами знаете что, если я неправ в (30), соображаю на автопилоте. и я сразу отправлюсь спать
35 Wobland
 
23.08.11
21:51
+(33) SmallTalk'е, конечно
36 lubja
 
23.08.11
21:51
(34) после того, как прострелим, ты пойдешь спать? сильно!)
37 Botanik
 
23.08.11
21:52
ТЗ - Строки (ТочкаДоставки, Наименование). ТочкаДоставки - Тип Справочник. Наименование - Строка.
Неважно как ищу, с поиском все хорошо. Не могу заменить значения (Строка на Справочник ссылку). Как это сделать, кто знает?
38 Botanik
 
23.08.11
21:54
Тема закрыта всем спасибо!
Похоже мне просто нужно было выговориться))
39 Wobland
 
23.08.11
21:54
(36) конечно, если это сделаешь именно ты, я перестану её мыть и не смогу уснуть от переполняющих меня чувств
40 Планета Обезьян
 
23.08.11
21:55
вот так всегда(((
41 Wobland
 
23.08.11
21:55
(38) нене! ветка автору не принадлежит! где был неправ?
42 lubja
 
23.08.11
21:56
(36) почему сразу? вот везет мне на грязную работу...
43 lubja
 
23.08.11
21:58
имела в виду "почему сразу я"... пальцы не успевают за мыслью...
44 Wobland
 
23.08.11
21:59
(43) ну не из-за мужиков же мне чувствами переполняться!
45 zzerro
 
23.08.11
21:59
в чём косяк то был, код вроде рабочий?
46 Wobland
 
23.08.11
22:00
(45) прострелил, да? я был неправ в (30)?
47 Botanik
 
23.08.11
22:01
Эм...ошибка была в том, что пихал невпихуваемое, тип значения ТЗ был справочникОбъект, вот и все. Спасибо всем ещё раз!
48 Планета Обезьян
 
23.08.11
22:02
мда...надо было стрелять..
49 Wobland
 
23.08.11
22:06
(48) самостоятельно в висок. доброй всем ночи!
50 lubja
 
23.08.11
22:08
(49) быстро спать!!!