Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Получить доступ к ТЧ документа из формы обработки.          
valleha Подменю пользователя
сообщение 12.08.15, 16:54
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый день. Устал бороться с поисковиками. Прошу помощи специалистов!
Платформа 8.3 (обычное), конф-я самописная.

Суть вопроса.
Из документа вызывается форма обработки, в которой настраиваются данные для заполнения ТЧ документа. В обработку могу передать значения реквизитов, а назад, по кнопке выполнить, вернуть обработанные данные в табличную часть не получается. Идей ноль. Направьте хотя бы на верную сторону.

Vofka Подменю пользователя
сообщение 12.08.15, 18:04
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13401
Из: Киев
Спасибо сказали: 4141 раз
Рейтинг: 3287.8

Опишите подробнее как именно делаете.

valleha Подменю пользователя
сообщение 12.08.15, 19:36
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Vofka @ 12.08.15, 19:04) *
Опишите подробнее как именно делаете.


Документ ЗаказПокупателя:
-ТЧ_НаборыНоменклатуры, (содержит ссылки на стандартные наборы из справочника и наборные в ручную)
-ТЧ_СоставНаборовНоменклатуры (содержит список входящих в набор материалов)

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

Далее в обработке в двух похожих табличных частях (как в документе) создаётся или редактируется набор и по кнопке выполнить необходимо заполнить данными этих ТЧ табличные части документа владельца. Совет и помощь мне нужны на этом этапе. Как в обработке поймать форму открытого документа и начинить его данными из обработки?

На вопрос "почему это нельзя сделать в документе сразу?";
-в обработке пользователь может настраивать смесь, пользуясь большим количеством данных: пропорции, плотности, единицы, цены, остатки и т.д.
-вторая табличная часть ТЧ_СоставНаборовНоменклатуры может содержать большое количество строк, а это затрудняет восприятие информации пользователем. Вероятность того, что пользователь ошибётся, нужно свести к нулю.

TipsyKID Подменю пользователя
сообщение 12.08.15, 19:48
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 408
Из: Киев
Спасибо сказали: 160 раз
Рейтинг: 0

[необходимо зарегистрироваться для просмотра ссылки]


Signature
Специалист : Технологическая платформа 8.х, Бухгалтерия для Украины, Управление торговлей для Украины, Зарплата и Управление Персоналом для Украины

logist Подменю пользователя
сообщение 12.08.15, 20:43
Сообщение #5

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9334
Из: Харьков
Спасибо сказали: 2466 раз
Рейтинг: 0

TipsyKID,
Цитата(valleha @ 12.08.15, 17:54) *
Платформа 8.3 (обычное),



Цитата(valleha @ 12.08.15, 20:36) *
На вопрос "почему это нельзя сделать в документе сразу?";

Тогда другой вопрос - почему это нельзя сделать при помощи дополнительных форм документа?


Signature
Весь комплекс услуг по 1С 8.х. От консультаций до внедрения. ИТС. 1С-Звіт. Интеграция IP-телефонии. Написание конфигураций под требования заказчика, доработка типовых решений. Переход с 7.7 на 8.х.
Пишите в ЛС. Звоните +380 (44) 2227507, (57) 7547700, (98) 5147778, (50) 7147778, (93) 2147778 (участник "САБ")

valleha Подменю пользователя
сообщение 12.08.15, 20:53
Сообщение #6

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(logist @ 12.08.15, 21:43) *
Тогда другой вопрос - почему это нельзя сделать при помощи дополнительных форм документа?

Вы имеете ввиду вместо обработки вызвать дополнительную форму документа или использовать дополнительную изначально?

logist Подменю пользователя
сообщение 12.08.15, 21:07
Сообщение #7

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9334
Из: Харьков
Спасибо сказали: 2466 раз
Рейтинг: 0

Имею ввиду, у документа создать произвольную форму, и разместить там необходимые данные Объекта для работы, тогда передавать данные между формами не нужно.


Signature
Весь комплекс услуг по 1С 8.х. От консультаций до внедрения. ИТС. 1С-Звіт. Интеграция IP-телефонии. Написание конфигураций под требования заказчика, доработка типовых решений. Переход с 7.7 на 8.х.
Пишите в ЛС. Звоните +380 (44) 2227507, (57) 7547700, (98) 5147778, (50) 7147778, (93) 2147778 (участник "САБ")

valleha Подменю пользователя
сообщение 12.08.15, 21:49
Сообщение #8

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(logist @ 12.08.15, 22:07) *
Имею ввиду, у документа создать произвольную форму, и разместить там необходимые данные Объекта для работы, тогда передавать данные между формами не нужно.

От этого варианта я отказался ещё на этапе планирования. Дело в том, что мне нужно вызвать одно окно для редактирования одной строки ТЧ_НаборыНоменклатуры и одной или более строк подчинённой ей ТЧ_СоставНаборовНоменклатуры. после этого обновить родительскую форму документа, добавив нужные строки.
Мне казалось, дело будет за парой строк кода инициализации формы документа и циклом вставки строк в ТЧ. А нет, судя по всему.

logist Подменю пользователя
сообщение 13.08.15, 2:04
Сообщение #9

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9334
Из: Харьков
Спасибо сказали: 2466 раз
Рейтинг: 0

Открывайте форму модально, при закрытии возвращайте необходимые параметры.


Signature
Весь комплекс услуг по 1С 8.х. От консультаций до внедрения. ИТС. 1С-Звіт. Интеграция IP-телефонии. Написание конфигураций под требования заказчика, доработка типовых решений. Переход с 7.7 на 8.х.
Пишите в ЛС. Звоните +380 (44) 2227507, (57) 7547700, (98) 5147778, (50) 7147778, (93) 2147778 (участник "САБ")

TipsyKID Подменю пользователя
сообщение 13.08.15, 6:56
Сообщение #10

Оратор
Иконка группы
Группа: Местный
Сообщений: 408
Из: Киев
Спасибо сказали: 160 раз
Рейтинг: 0

Цитата(logist @ 12.08.15, 21:43) *
TipsyKID,

Проглядел, тогда я не понимаю в чем вообще сложность.
Строчка которую закомментировали все решает :
//ОбработкаКомплектацияСмеси.Документ=ЭтотОбъект;

Передайте в обработку объект и творите с ним все , что хотите.
Так сделано во всех типовых с внешними обработками табличных частей.


Signature
Специалист : Технологическая платформа 8.х, Бухгалтерия для Украины, Управление торговлей для Украины, Зарплата и Управление Персоналом для Украины

valleha Подменю пользователя
сообщение 13.08.15, 8:21
Сообщение #11

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(TipsyKID @ 13.08.15, 7:56) *
Строчка которую закомментировали все решает :
//ОбработкаКомплектацияСмеси.Документ=ЭтотОбъект;



Выдаёт ошибку:
{Документ.ЗаказыПокупателей.Форма.ФормаДокумента.Форма(1017)}: Поле объекта не обнаружено (Документ)
    ОбработкаКомплектацияСмеси.Документ=ЭтотОбъект;

Petre Подменю пользователя
сообщение 13.08.15, 8:38
Сообщение #12

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2751
Из: Київ, Україна
Спасибо сказали: 830 раз
Рейтинг: 828.9

Так добавьте это поле в обработке. Или реквизит обработки, или экспортную переменную модуля...


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

TipsyKID Подменю пользователя
сообщение 13.08.15, 8:45
Сообщение #13

Оратор
Иконка группы
Группа: Местный
Сообщений: 408
Из: Киев
Спасибо сказали: 160 раз
Рейтинг: 0

1. Добавляем реквизит Документ с типом ЗаказПокупателя.
2. Из документа заполняем этот реквизит после создания обработки (фактически раскомментировать осталось)
3. В обработке "передзакрытием" ( или по любому другому обработчику) записываем в реквизит документ все что душа желает.


Signature
Специалист : Технологическая платформа 8.х, Бухгалтерия для Украины, Управление торговлей для Украины, Зарплата и Управление Персоналом для Украины

Спасибо сказали: valleha,

valleha Подменю пользователя
сообщение 13.08.15, 19:39
Сообщение #14

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(TipsyKID @ 13.08.15, 9:45) *
3. В обработке "передзакрытием" ( или по любому другому обработчику) записываем в реквизит документ все что душа желает.

дело в том, что с этим пунктом у меня проблемы. мне стыдно, но туплю, простите.
Как обратиться к реквизитам объекта документа?

valleha Подменю пользователя
сообщение 13.08.15, 19:39
Сообщение #15

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

.

valleha Подменю пользователя
сообщение 13.08.15, 22:02
Сообщение #16

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

При вызове формы обработки:
Процедура КоманднаяПанель6СоздатьСмесь(Кнопка)
        ОбработкаКомплектацияСмеси = Обработки.КомплектацияСмеси.ПолучитьФорму("Форма", ЭтаФорма);
    ОбработкаКомплектацияСмеси.ЗакрыватьПриЗакрытииВладельца=Истина;
    ОбработкаКомплектацияСмеси.Наименование="Новая смесь";
    ОбработкаКомплектацияСмеси.Документ=ЭтотОбъект.Ссылка;
    ОбработкаКомплектацияСмеси.ПолучитьФорму().ОткрытьМодально();
КонецПроцедуры


Выполнение обработки:
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Если ПроверитьЗаполнение()=Ложь ИЛИ СмесьКТ.Количество()=0 Тогда
        Сообщить("Ошибка заполнения!");
        Возврат;
    ИначеЕсли Окр(СмесьНМНК.Итог("ПроцентВоВладельце")/СмесьКТ.Количество(), 2)=100 Тогда
        
               //Получение непонятно чего   ////////////////////////////////////////////////
                Объект = Документ.ПолучитьОбъект();
        Строка=Объект.ТЧ_СмесиКТ.Добавить();
        Строка.СмесьНМНК = Наименование;    
        
        Для Каждого СтрокаТаб из СмесьНМНК Цикл
            
            //заполнить ТЧ_Ёмкости
            
        КонецЦикла;
        /////////////////////////////////////////////////////////////////////////////////
    КонецЕсли;
    ЭтаФорма.Закрыть();    
КонецПроцедуры


В результате ничего!

TipsyKID Подменю пользователя
сообщение 14.08.15, 7:32
Сообщение #17

Оратор
Иконка группы
Группа: Местный
Сообщений: 408
Из: Киев
Спасибо сказали: 160 раз
Рейтинг: 0

Передавайте не ссылку а сам объект :
Реквизит у обработки должен быть ДокументОбъект.ЗаказПокупателя.
ОбработкаКомплектацияСмеси.Наименование="Новая смесь";
    ОбработкаКомплектацияСмеси.Документ=ЭтотОбъект;

При заполнении :
//Получение непонятно чего   ////////////////////////////////////////////////
        //Объект = Документ.ПолучитьОбъект();* закоментируйте
        Строка=Объект.ТЧ_СмесиКТ.Добавить();
        Строка.СмесьНМНК = Наименование;


Сообщение отредактировал TipsyKID - 14.08.15, 7:32


Signature
Специалист : Технологическая платформа 8.х, Бухгалтерия для Украины, Управление торговлей для Украины, Зарплата и Управление Персоналом для Украины

Спасибо сказали: valleha,

valleha Подменю пользователя
сообщение 14.08.15, 8:36
Сообщение #18

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(TipsyKID @ 14.08.15, 8:32) *
Реквизит у обработки должен быть ДокументОбъект.ЗаказПокупателя.


Как всё просто оказалось. У меня был выбран тип ДокументСсылка.
Спасибо огромное!

TipsyKID Подменю пользователя
сообщение 14.08.15, 11:18
Сообщение #19

Оратор
Иконка группы
Группа: Местный
Сообщений: 408
Из: Киев
Спасибо сказали: 160 раз
Рейтинг: 0

Возможность поблагодарить отвечающего

У нас на форуме есть "хорошая" кнопка, нажав на которую можно без лишних слов выразить человеку благодарность за его сообщение. У новичков возникнет вопрос: "А где же она?". А вот она:



Если чей-то пост Вы посчитали для себя полезным - жмите на кнопку!


Signature
Специалист : Технологическая платформа 8.х, Бухгалтерия для Украины, Управление торговлей для Украины, Зарплата и Управление Персоналом для Украины

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 26.11.20, 14:05
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!