Заполнение ТЧ из другого документа.

1. kog 39 25.04.24 11:59 Сейчас в теме
1с Бухгалтерия 3.0 Нужно заполнить табличную часть документа ОтчетПроизводстваЗаСмену из ТЧ ПоступлениеТоваровУслуг. Нюанс в том, что номенклатура должна вставать как субконто.
Делаю через расширение.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
16. user1671936 1 06.05.24 11:50 Сейчас в теме
(15)
но почему-то заполняет из всех документов
потому что в тексте запроса не указаны параметры "Где ПоступлениеТоваровТовары.Ссылка = &Ссылка И ПоступлениеТоваровТовары.Номенклатура = &Номенклатура"
Запрос=Новый Запрос;
    Запрос.УстановитьПараметр("Ссылка",ДокументПоступление);
	

	Спр=Справочники.Номенклатура.НайтиПоНаименованию("УСЛУГИ ТРАНСПОРТНОГО УЧАСТКА");
    Запрос.УстановитьПараметр("Номенклатура",Спр);
	
    Запрос.Текст="ВЫБРАТЬ 
	|    ПоступлениеТоваровТовары.номенклатура КАК Номенклатура,
	|    ПоступлениеТоваровТовары.СчетУчета КАК Счет,
	|    ПоступлениеТоваровТовары.Номенклатура КАК Субконто1,
    |    ПоступлениеТоваровТовары.Количество КАК Количество,
    |    ПоступлениеТоваровТовары.Цена КАК ПлановаяСтоимость,
    |    ПоступлениеТоваровТовары.Сумма КАК СуммаПлановая
    |ИЗ 
    |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровТовары";
	Массив=ОбщегоНазначения.ТаблицаЗначенийВМассив(Запрос.Выполнить().Выгрузить());
    Возврат Массив;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 25.04.24 12:10 Сейчас в теме
(1)и в чем проблемы назвать колонку "номенклатура" колонкой "Субконто" в запросе или сделать
СтрокаТЧ.Субконто = СтрокаПоступления.Номенклатура

?
3. kog 39 25.04.24 12:21 Сейчас в теме
(2) Будьте добры, можно подробнее сам модуль. Я дохожу до выбора документа поступления и при выборе все закрывается.
4. nomad_irk 76 25.04.24 12:22 Сейчас в теме
(3)свой код показывайте
14. independ 1542 27.04.24 09:49 Сейчас в теме
(1) можно без расширения, внешняя обработка заполнения с формой, в реквизиты формы добавить реквизит с типом ссылка ДокументСсылка.ПоступлениеТоваров. Если вызывать в форме документа, то заполнение ТЧ Услуги делать через обращение через ВладелецФормы, примерно
Модуль объекта внешней обработки пример
Функция СведенияОВнешнейОбработке() Экспорт
	
	РегистрационныеДанные = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("1.0.0.0");
	РегистрационныеДанные.Назначение.Добавить("Документ.ОтчетПроизводстваЗаСмену");
	РегистрационныеДанные.Версия = "1.0";
	РегистрационныеДанные.Вид = "ЗаполнениеОбъекта";
	
	НовКоманда = РегистрационныеДанные.Команды.Добавить();
	НовКоманда.Использование = "ОткрытиеФормы";
	НовКоманда.Идентификатор = "Заполнить из поступления";
	НовКоманда.Представление = НовКоманда.Идентификатор;
	
	Возврат РегистрационныеДанные;

КонецФункции
Показать


Модуль формы внешней обработки пример, нужные поля и их названия определить
&НаКлиенте
Процедура ЗаполнитьДанные(Команда)

	Если ВладелецФормы=Неопределено Тогда
		Возврат;
	КонецЕсли;

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

&НаСервереБезКонтекста
Функция ПолучитьМассивСтрокТЧ(ДокументПоступление)
	Запрос=Новый Запрос;
	Запрос.УстановитьПараметр("Ссылка",ДокументПоступление);
	Запрос.Текст="ВЫБРАТЬ
	             |	ПоступлениеТоваровТовары.Номенклатура КАК Субконто,
	             |	ПоступлениеТоваровТовары.Количество КАК Количество,
	             |	ПоступлениеТоваровТовары.Цена КАК Цена,
	             |	ПоступлениеТоваровТовары.Сумма КАК Сумма
	             |ИЗ
	             |	Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары";
	Массив=ОбщегоНазначения.ТаблицаЗначенийВМассив(Запрос.Выполнить().Выгрузить();
	Возврат Массив;
КонецФункции
Показать
Прикрепленные файлы:
15. kog 39 06.05.24 11:14 Сейчас в теме
(14)Спасибо за совет, сделал, но почему-то заполняет из всех документов.
Прикрепленные файлы:
ОбработкаЗаполненияУслуги.epf
16. user1671936 1 06.05.24 11:50 Сейчас в теме
(15)
но почему-то заполняет из всех документов
потому что в тексте запроса не указаны параметры "Где ПоступлениеТоваровТовары.Ссылка = &Ссылка И ПоступлениеТоваровТовары.Номенклатура = &Номенклатура"
Запрос=Новый Запрос;
    Запрос.УстановитьПараметр("Ссылка",ДокументПоступление);
	

	Спр=Справочники.Номенклатура.НайтиПоНаименованию("УСЛУГИ ТРАНСПОРТНОГО УЧАСТКА");
    Запрос.УстановитьПараметр("Номенклатура",Спр);
	
    Запрос.Текст="ВЫБРАТЬ 
	|    ПоступлениеТоваровТовары.номенклатура КАК Номенклатура,
	|    ПоступлениеТоваровТовары.СчетУчета КАК Счет,
	|    ПоступлениеТоваровТовары.Номенклатура КАК Субконто1,
    |    ПоступлениеТоваровТовары.Количество КАК Количество,
    |    ПоступлениеТоваровТовары.Цена КАК ПлановаяСтоимость,
    |    ПоступлениеТоваровТовары.Сумма КАК СуммаПлановая
    |ИЗ 
    |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровТовары";
	Массив=ОбщегоНазначения.ТаблицаЗначенийВМассив(Запрос.Выполнить().Выгрузить());
    Возврат Массив;
Показать
17. independ 1542 06.05.24 11:55 Сейчас в теме
(15) забыл в условие в текст запроса вставить
18. kog 39 06.05.24 15:45 Сейчас в теме
(17) не взлетает, ну что не так?

&НаКлиенте
Процедура ЗаполнитьДанные(Команда)
	Если ВладелецФормы=Неопределено Тогда
	    Возврат;
	КонецЕсли;

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


&НаСервереБезКонтекста
Функция ПолучитьМассивСтрокТЧ(ДокументПоступление)
    Запрос=Новый Запрос;
    Запрос.УстановитьПараметр("Ссылка",ДокументПоступление);
	Спр=Справочники.Номенклатура.НайтиПоНаименованию("УСЛУГИ ТРАНСПОРТНОГО УЧАСТКА");
    Запрос.УстановитьПараметр("Номенклатура",Спр);
	
    Запрос.Текст="ВЫБРАТЬ 
	|    ПоступлениеТоваровТовары.номенклатура КАК Номенклатура,
	|    ПоступлениеТоваровТовары.СчетУчета КАК Счет,
	|    ПоступлениеТоваровТовары.Номенклатура КАК Субконто1,
    |    ПоступлениеТоваровТовары.Количество КАК Количество,
    |    ПоступлениеТоваровТовары.Цена КАК ПлановаяСтоимость,
    |    ПоступлениеТоваровТовары.Сумма КАК СуммаПлановая
	|ИЗ
    |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровТовары
	|ГДЕ 
	|ПоступлениеТоваровТовары.Ссылка = &Ссылка
	|И ПоступлениеТоваровТовары.Номенклатура = &Номенклатура";

	Массив=ОбщегоНазначения.ТаблицаЗначенийВМассив(Запрос.Выполнить().Выгрузить());
    Возврат Массив;
КонецФункции
Показать
5. kog 39 25.04.24 12:24 Сейчас в теме
я со психу все стер :( использовал из подобной процедуре заполнения счета из прихода.
6. nomad_irk 76 25.04.24 12:26 Сейчас в теме
(5)подождем, пока восстановите
7. kog 39 25.04.24 12:51 Сейчас в теме
Для гуру 1С это несколько строчек модуля. Я к сожалению к ним не отношусь, поэтому и прошу помочь.
8. user1880116 25.04.24 12:54 Сейчас в теме
(7)
Я к сожалению к ним не отношусь,
Но ты же что-то такое уже написал. То самое, что потом стер. Из подобной процедуре заполнения счета из прихода.

Или же всё было не так?
9. kog 39 26.04.24 10:33 Сейчас в теме
10. Vlan 36 26.04.24 14:07 Сейчас в теме
Лайфхак: попросите бухгалтера сделать все вручную и запишите, откуда и что он(а) берет. Потом все то же самое сделайте программно.
11. kog 39 27.04.24 05:57 Сейчас в теме
Бухгалтер попросил скрестить овцу с быком, чтобы был овцебык. )) Иначе говоря связать два дока, ПоступлениеТоваровУслуг и ОтчетПроизводстваЗаСмену. Мало того, это все надо сделать не нарушая стандартную конфу, т.е сделать расширение. Все мои знания в 8-ке позволили дойти до этого места

&НаСервере
Процедура Расш1_ЗаполнитьПриходПослеНаСервере()
// Вставить содержимое обработчика.
Открытьформу("Документ.ПоступлениеТоваровУслуг.ФормаВыбора");
КонецПроцедуры

&НаКлиенте
Процедура Расш1_ЗаполнитьПриходПосле(Команда)
Расш1_ЗаполнитьПриходПослеНаСервере();
КонецПроцедуры

.......и я уже здесь завис :-( А надо чтобы, из поступления ТЧ подгрузилось. Ну ребята, помогите уже третий день голову ломаю. Не кидайте в меня тапками, я понимаю, что пока не догоняю, но срок бух поставил.
13. nomad_irk 76 27.04.24 07:11 Сейчас в теме
(11)наймите программиста
12. kog 39 27.04.24 06:00 Сейчас в теме
ошибка:
{Расширение1 Документ.ОтчетПроизводстваЗаСмену.Форма.ФормаДокументаОтчетПроизводстваЗаСмену.Форма(5,2)}: Процедура или функция с указанным именем не определена (Открытьформу)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот