Версия для печати темы (https://pro1c.org.ua/index.php?s=0944396442ffd926dded97c92dfa3e74&showtopic=42168)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование управляемых форм 1С 8.2 _ ПолучитьИдентификатор() почему пишет: "Метод объекта не обнаружен (ПолучитьИдентификатор)"

Автор: Gigi 24.11.17, 13:30

Всем привет!
Никто не подскажет почему функция: ПолучитьИдентификатор() не работает на сервере на пример в процедуре в общем модуле..
Пришит: "Метод объекта не обнаружен (ПолучитьИдентификатор)"
Гууу ... этот клиент серверное ограничение ... как уже достало блин
Нет что бы команды РАБОТАЛИ ... работали ВЕЗДЕ и там и тут. Достало.
Ладно! Не буду...
Вот код из общего модуля

//........
МассивУдаляемыхСтрок= Новый Массив;
Для Каждого Строка Из ОбъектЮрЛицо.ТЧ_Показания Цикл
ТекСтрокаНомер=Строка.НомерСтроки;
ТекСтрокаИдент=Строка.ПолучитьИдентификатор(); //вот где пришит: "Метод объекта не обнаружен (ПолучитьИдентификатор)"
  Если  Сторка.Реквизит2=ложь Тогда
  МассивУдаляемыхСтрок.Добавить(ТекСтрокаИдент);
  КонецЕсли;
//........
КонецЕсли;
//........

Цель в том, что бы обозначить и загнать в массив строки табличной части для последующего удаления.
На клиенте все нормально работает. А на сервере стопориться на
Строка.ПолучитьИдентификатор()

не распознает... тормаз
Вообщем буду признателен ... опять вынужден искать решение и выходить на форум
Так что буду признателен!

Gigi @ Сегодня, 14:12 * ,
Дело в том, что метод
ПолучитьИдентификатор()
на сервере доступен.
По крайней мере в синтаксис помощнике так написано.
Но почему тогда не распознает и пишет не обнаружен ... зараза
Так что, большая просьба о помощи.

Автор: Vidocq05 24.11.17, 13:34

Gigi @ Сегодня, 14:30 * ,
Открыв синтакс-помощник я выяснил, что для табличной части объекта такого метода нет. И соответственно, логично предположить, что по этой причине и возникает ошибка.

Автор: Petre 24.11.17, 13:40

Gigi @ Сегодня, 13:30 * ,
Не имеет значение, клиент или сервер. Важен тип значения, в данном случае, Строка.
Телепатирую, что это - строка табличной части, которая не имеет такого метода.
А там, на клиенте, где у вас не ругается, это - элемент данных формы.

Автор: Vidocq05 24.11.17, 13:45

Цитата(Vidocq05 @ 24.11.17, 14:34) *
что для табличной части объекта такого метода нет

Пардон. Для строки табличной части

Автор: Gigi 24.11.17, 13:55

Цитата(Petre @ 24.11.17, 14:40) *
Не имеет значение, клиент или сервер. Важен тип значения, в данном случае, Строка.
Телепатирую, что это - строка табличной части, которая не имеет такого метода.
А там, на клиенте, где у вас не ругается, это - элемент данных формы.

Там где не ругается это ОБЪЕКТ ...
Вот в таком виде:
//........
МассивУдаляемыхСтрок= Новый Массив;
Для Каждого Строка Из Объект.ТЧ_Показания Цикл
ТекСтрокаНомер=Строка.НомерСтроки;
ТекСтрокаИдент=Строка.ПолучитьИдентификатор(); //Тут все нормально
  Если  Сторка.Реквизит2=ложь Тогда
  МассивУдаляемыхСтрок.Добавить(ТекСтрокаИдент);
  КонецЕсли;
//........
КонецЕсли;
//........

Т.е. абсолютно то же самое только в общем модуле объект табличной части нужно получить
//........
ОбъектЮрЛицо = РезультатПоиска.ПолучитьОбъект(); // т.е. тут объект ТЧ получен.
//........
МассивУдаляемыхСтрок= Новый Массив;
Для Каждого Строка Из ОбъектЮрЛицо.ТЧ_Показания Цикл
ТекСтрокаНомер=Строка.НомерСтроки;
ТекСтрокаИдент=Строка.ПолучитьИдентификатор(); //Но все стопориться на этой линии блин .. ругается
  Если  Сторка.Реквизит2=ложь Тогда
  МассивУдаляемыхСтрок.Добавить(ТекСтрокаИдент);
  КонецЕсли;
//........
КонецЕсли;
//........

Как решить проблему?

Автор: Petre 24.11.17, 14:04

Gigi @ Сегодня, 13:55 * ,
Курите данные формы.

Автор: Vidocq05 24.11.17, 14:19

Gigi @ Сегодня, 14:55 * ,
На клиенте поставьте точку останова напротив "ТекСтрокаНомер=Строка.НомерСтроки;" и запустите выполнение кода. Когда выполнение кода остановится на точке останова, выделите "Строка", нажмите на ней правой кнопкой мыши и выберите "Вычислите выражение". И напишите сюда какой имеет тип "Строка".

Автор: Gigi 24.11.17, 15:13

Цитата(Vidocq05 @ 24.11.17, 15:19) *
На клиенте поставьте точку останова напротив "ТекСтрокаНомер=Строка.НомерСтроки;" и запустите выполнение кода. Когда выполнение кода остановится на точке останова, выделите "Строка", нажмите на ней правой кнопкой мыши и выберите "Вычислите выражение". И напишите сюда какой имеет тип "Строка".

Ща попробую...
Но вообще я в общем модуле построил так ... сперва создаются строки табличной части... все строки... и нужные и не нужные.
Потом нужно удалить не нужные. А потом сохранить/Провести документ с ТЧ.
Т.е. сохранял в конце.
Поэтому попробовал сохранить два раза в одной процедуре.
Сперва после создания всех строк ТЧ. И уже после удалять не нужные и потом второй раз сохранить.
Все равно не выходит.
Нарыл для теста еще команду:
 Объект1 = ДанныеФормыВЗначение(ОбъектЮрЛицо, Тип("ДокументОбъект.ЮрЛица_Акты"));
Объект1.ВывестиСообщение(ОбъектЮрЛицо.ОбъектИмя);

Но как его для поставленной цели использовать smile.gifsmile.gif и нужна ли эта команда в данном случае не въезжаю
И все равно че то ругается при тесте
Ладно! Ща попробую как советуете .. потом продолжу тему

Gigi @ Сегодня, 15:33 * ,
Сделал как советуете
Цитата
Выражение: Строка
Значение: ДокументТабличнаяЧастьСтрока.ЮрЛица_Акты.ТЧ_Показания
Тип: ДокументТабличнаяЧастьСтрока.ЮрЛица_Акты.ТЧ_Показания

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


Gigi @ Сегодня, 15:46 * ,
Как решить проблему?
Гууу ... как надоело ... постоянно одно и то же ... куда не смотри везде стопор

Gigi @ Сегодня, 16:12 * ,
Если у кого соображения буду весьма ...

Автор: Petre 24.11.17, 15:51

Цитата(Gigi @ 24.11.17, 15:13) *
Как решить проблему?

Какая стоит задача?

Автор: Vidocq05 24.11.17, 16:36

Цитата(Gigi @ 24.11.17, 16:13) *
Выражение: Строка
Значение: ДокументТабличнаяЧастьСтрока.ЮрЛица_Акты.ТЧ_Показания
Тип: ДокументТабличнаяЧастьСтрока.ЮрЛица_Акты.ТЧ_Показания

Это на клиенте?
Цитата(Gigi @ 24.11.17, 16:13) *
Поэтому попробовал сохранить два раза в одной процедуре.
Сперва после создания всех строк ТЧ. И уже после удалять не нужные и потом второй раз сохранить.

А почему не добавлять сразу только нужные.

Автор: logist 24.11.17, 17:06

Цитата(Gigi @ 24.11.17, 15:13) *
как надоело ... постоянно одно и то же ... куда не смотри везде стопор

Бросьте это дело, и не мучайте себя и окружающих.

Автор: Batchir 24.11.17, 21:25

Каждый раз когда топикстартер начинает свой рассказ у меня звучит в голове песня 1С-ника Нуралиеву.
Это у меня одного так?

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua