Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Типовые и стандартные решения
Войти
Регистрация
Восстановить пароль
 
Casper20
0 / 0 / 3
Регистрация: 01.10.2014
Сообщений: 97
1

Идентификатор "ДокументТабличнаяЧасть" УТ 3.1

16.11.2016, 10:57. Просмотров 730. Ответов 0
Метки нет (Все метки)

В модуле менеджера такой код


1C
1
СтрокаТовары = Объект.Товары.НайтиПоИдентификатору(Идентификатор);

Объект.Товары -ДанныеФормыКоллекция (то есть данные ТЧ Товары объекта).А я использую внешнюю обработку, выбираю ссылку на документ (заказ клиента), получаю объект (его табличную часть).И дальше по коду должен выполняться вот это

1C
1
СтрокаТовары = Объект.Товары.НайтиПоИдентификатору(Идентификатор);

Как мне переделать "ДокументТабличнаяЧасть.ЗаказКлиента.Товары" вместо "Объект.Товары" чтобы он стал ДанныеФормыКоллекция и нашло идентификатор??


Кнопка в заказе клиента: вызывает форму перечисления и передает данные обратно для заказа
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
&НаКлиенте
Процедура ЗаполнитьОбеспечение(Команда)
 
    ПараметрыПроверки = ОбеспечениеКлиентСервер.ИнициализироватьПараметрыПроверкиЗаполнения();
 
    Если ОбеспечениеКлиентСервер.ПроверитьЗаполнение(
        Объект, Объект.Товары, Элементы.Товары.ВыделенныеСтроки, ПараметрыПроверки, Неопределено, Объект.Склад) Тогда
 
        ПараметрыФормы = Новый Структура("Тип", ТипЗнч("Объект.Ссылка"));
        ОткрытьФорму("Перечисление.ВариантыОбеспечения.Форма.ИсполнениеЗаказа", ПараметрыФормы,
            ЭтаФорма, УникальныйИдентификатор);
 
    КонецЕсли;
 
КонецПроцедуры

после того как получили данные выполняем


1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
&НаКлиенте 
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) 
 
    Если ИсточникВыбора.ИмяФормы = "Перечисление.ВариантыОбеспечения.Форма.ИсполнениеЗаказа" Тогда
 
        Детали = ЗаполнитьОбеспечениеВУстановленномПорядке(ВыбранноеЗначение);
        Если Детали.Ошибки <> Неопределено Тогда
            ОчиститьСообщения();
            ОбщегоНазначенияКлиентСервер.СообщитьОшибкиПользователю(Детали.Ошибки);
        КонецЕсли;
        ПоказатьОповещениеПользователя(ОбеспечениеКлиентСервер.ТекстЗаполнениеОбеспечения(), , Детали.Оповещение);
 
        СкидкиНаценкиКлиент.СброситьФлагСкидкиРассчитаны(ЭтаФорма);
        НДСИсходящийКлиент.СброситьПроверитьФлагПерерасчетПроизведен(ЭтаФорма);


1C
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
&НаСервере
Функция ЗаполнитьОбеспечениеВУстановленномПорядке(ПереченьВариантов)
 
    //Описание особенностей формы - дату отгрузки работ необходимо брать из поля "Дата отгрузки".
 
    ПутиКДанным = Новый Соответствие();
    ПутиКДанным.Вставить("ДатаОтгрузкиРабот", "ДатаОтгрузки");
 
    ПараметрыЗаполнения = Новый Структура("СтатусКВыполнению, ГруппаСкладов, МенеджерРегистра",
        Объект.Статус <> Перечисления.СтатусыЗаказовКлиентов.НеСогласован, Объект.Склад, РегистрыНакопления.ЗаказыКлиентов);
 
    Таблица = ОбеспечениеСервер.ТаблицаЗаполнениеОбеспечения(
        Элементы.Товары.ВыделенныеСтроки,
        Объект,
        Объект.Товары,
        ПутиКДанным,
        ПереченьВариантов,
        ПараметрыЗаполнения);
 
    //Перенос результатов в документ.
 
    ТекстОповещения = Документы.ЗаказКлиента.ЗаполнитьВариантОбеспечения(Объект, ЭтаФорма, "СтрокиТовары", Таблица,
            ПараметрыУказанияСерий, ЗависимыеРеквизиты());
 
    РассчитатьИтоговыеПоказателиЗаказа(ЭтаФорма);
    СтруктураИтогов = Новый Структура("РазличныеСклады, ЕстьИзЗаказов, ТолькоНеТребуется");
    ОбойтиТаблицуОбновитьЗависимыеРеквизиты(СтруктураИтогов);
 
    Возврат Новый Структура("Ошибки, Оповещение", Неопределено, ТекстОповещения);
 
КонецФункции

и вот здесь где "Объект.Товары," - ДанныеФормыВзначение

1C
1
2
3
4
5
6
7
Таблица = ОбеспечениеСервер.ТаблицаЗаполнениеОбеспечения( 
        Элементы.Товары.ВыделенныеСтроки, 
        Объект, 
        Объект.Товары,
        ПутиКДанным,
        ПереченьВариантов,
        ПараметрыЗаполнения);


а я будучи с внешней обработки получаю ссылку на документ - могу получить объект, но как сделать из "ДокументТабличнаяЧасть.ЗаказКлиента.Товары" -ДанныеФормыКоллекция. Чтобы удовлетворить методы описанные в функции Объект.Товары.НайтиПоИдентификатору(ВыделеннаяСтрока.Идентификатор);




1C
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
39
40
41
42
43
44
45
46
//Заполнение обеспечения для выделенных строк заказа
 
Функция ТаблицаЗаполнениеОбеспечения(ИдентификаторыСтрок, Объект, ТабЧасть, ПутиКДанным, ПереченьВариантов, Параметры = Неопределено) Экспорт
 
    СтатусКВыполнению = Истина;
    ГруппаСкладов = Неопределено;
    МенеджерРегистра = Неопределено;
    Если Параметры <> Неопределено Тогда
        Если Параметры.Свойство("СтатусКВыполнению") Тогда
            СтатусКВыполнению = Параметры.СтатусКВыполнению;
        КонецЕсли;
        Если Параметры.Свойство("ГруппаСкладов") Тогда
            ГруппаСкладов = Параметры.ГруппаСкладов;
        КонецЕсли;
        Если Параметры.Свойство("МенеджерРегистра") Тогда
            МенеджерРегистра = Параметры.МенеджерРегистра;
        КонецЕсли;
    КонецЕсли;
 
    //Таблица выделенных строк табличной части.
 
    ТаблицаВыделенныеСтроки = ВыделенныеСтрокиВТаблицу(ТабЧасть, ИдентификаторыСтрок, Объект, ПутиКДанным);
 
    КодыСтрок = Новый Массив();
    Для Каждого ВыделеннаяСтрока Из ТаблицаВыделенныеСтроки Цикл
        Строка = ТабЧасть.НайтиПоИдентификатору(ВыделеннаяСтрока.Идентификатор);
        Строка.Количество = 0;
        КодыСтрок.Добавить(Строка.КодСтроки);
    КонецЦикла;
    ТаблицаОформлено = МенеджерРегистра.ТаблицаОформлено(Объект.Ссылка, КодыСтрок);
 
    //Таблица невыделенных строк табличной части.
 
    ТаблицаНевыделенныеСтроки = СтрокиВТаблицу(ТабЧасть, Объект, ПутиКДанным);
 
    Для Каждого ВыделеннаяСтрока Из ТаблицаВыделенныеСтроки Цикл
        Строка = ТабЧасть.НайтиПоИдентификатору(ВыделеннаяСтрока.Идентификатор);
        Строка.Количество = ВыделеннаяСтрока.Количество;
    КонецЦикла;
 
    Результат = ТаблицаЗаполнениеОбеспеченияУниверсальный(
        ТаблицаВыделенныеСтроки, ПереченьВариантов, ТаблицаОформлено, ТаблицаНевыделенныеСтроки, Объект.Ссылка, ГруппаСкладов);
 
    Возврат Результат;
 
КонецФункции

То есть "ДокументТабличнаяЧасть.ЗаказКлиента.Товары" не имеет "НайтиПоИдентификатору"
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2016, 10:57
Ответы с готовыми решениями:

Ошибка Метаданных "не найден идентификатор в справочнике Идентификатор объекта метаданных"
В общем ситуация следующая, только начал разбираться с 1С, скачал с оф сайта...

"Деликатный" обмен данными между "КА 2.0" и "БП 3.0"
Здравствуйте! Имеется база 1С 8.3 &quot;Комплексная автоматизация 2 (2.4.3.167)&quot; -...

Универсальный отчет, "ссылку на документ вывести датой" или "как сэкономить место в отчете"
Доброго времени суток, Форумчане! Есть УТ, Нормальные формы. Есть...

ЗУП 3.1. Как получить информацию о "населённом пункте" или "городе" организации?
Здравствуйте. 1С: ЗУП 3.1. Нужно получить информацию о &quot;населённом пункте&quot; или...

Регистр не виден в панели навигации формы в разделе "Перейти", хотя в мастере документа на вкладке "Движения"
Регистр не виден в панели навигации формы в разделе &quot;Перейти&quot;, хотя в мастере...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2016, 10:57

Что сделать чтобы в заказе покупателя отображалось "резерв" и "остаток"?
Добрый день. Подскажите что и где нужно заполнить для того чтобы подтянулись...

Обмен между "Управление торговлей 11" и "Бухгалтерия предприятия 3.0"
Доброго времени суток. подскажите, может у кого есть обработка по выгрузке...

Для чего нужны два регистра накопления: "материалы в эксплуатации" и "партии материалов в эксплуатации"
Ребята, вопрос может быть ламерский, но он есть. Существует два регистра...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru