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

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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Заполнение на основании документа и справочника

Автор: scoodizzy619 24.12.24, 16:30

1С Управление небольшой фирмой для Украины, редакция 1.4

Нужна помощь.
Заполняю документ СчетНаОплату на основании документа Котировка. Все возможные реквизиты добавил.
В документе СчетНаОплату есть реквизиты которых нету в документе Котировка, таких как: ЕдиницаИзмерения, СтавкаНДС.

Данные реквизиты нужно подтянуть с справочника Номенклатура

Уточнение: в справочнике Номенклатура есть реквизиты Наименование, ЕдиницаИзмерения и СтавкаНДС. Наименование используется в документе Котировка и СчетНаОплату, а остальные только в СчетНаОплату

Нужно чтобы при создании на основании документа Котировка реквизиты в документе СчетНаОплату заполнялись и + к этому подтягивались реквизиты по справочнику Номенклатура соответственно.

Автор: Profi_1C77 25.12.24, 9:58

scoodizzy619 @ Вчера, 16:30 * ,
Не знаком с этой конфигурацией, но знаком с механизмом заполнения.
В модуле Объекта Документа СчетНаОплату , можно дописать свой обработчик табличной части , по такой логике :

Для Каждого Стр Из  ТаблицаТоваров ( Название Таблицы с Номенклатурой) Цикл 

Номенклатура - тут ее надо определить: либо это ссылка либо найти ссылку по Наименованию
...
Стр.ЕдиницаИзмерения = Номенклатура.ЕдиницаИзмерения;
Стр.СтавкаНДС             =  Номенклатура.СтавкаНДС;

КонецЦикла

Автор: scoodizzy619 25.12.24, 11:58

Profi_1C77 @ Сегодня, 9:58 * ,

Можна вас попросить более детально и просто объяснить что и куда я должен прописать, так как я только учусь этому)

Вот у меня есть Процедура ОбработкаЗаполнения табличной части документа СчетНаОплату на основании документа Котировка (на скриншоте)



И я немного не могу понять как мне интегрировать обработчик который вы указали в мой код)


Автор: Profi_1C77 25.12.24, 14:09

scoodizzy619 @ Сегодня, 11:58 * ,

НоваяСтрока.ЕдиницаИзмерения = НоваяСтрока.Номеклатура.ЕдиницаИзмерения;
НоваяСтрока.СтавкаНДС= НоваяСтрока.Номеклатура.СтакаНДС;

по логике так

Автор: scoodizzy619 25.12.24, 15:29

Profi_1C77 @ Сегодня, 14:09 * ,

Раньше пробовал так сделать, вводил эти строки в цикл но не выходит. Сейчас покажу результат этого.

Вот ввел его в цикл


Выдает в результате такую ошибку


Проверял по точке останова, но там показывает реквизиты по документу СчетНаОплату.



Если проверить точку останова после Номенклатура то там вообще ничего не показывает

Уточнение: реквизит Номенклатура который отображается после точки останова принадлежит документу СчетНаОплату

Автор: Profi_1C77 25.12.24, 15:33

scoodizzy619 @ Сегодня, 15:20 * ,
Пришлите структуру ДынныеЗаполнения и Отдельно ДанныеЗаполнения.Доходы;
Нету такой конфы, не начем смотреть структуры;

Автор: scoodizzy619 25.12.24, 16:15

Profi_1C77 @ Сегодня, 15:33 * ,
ДанныеЗаполнения это у нас документ Котировка
Вот его структура



Если что-то не то показываю то говорите. Найдем, покажем)

Автор: Profi_1C77 25.12.24, 16:23

scoodizzy619 @ Сегодня, 15:41 * ,
Я правильно понимаю, что ошибка появилась как добавили те 2 строки? Если так
Тогда : 1 . Тип у Реквизита Услуга, 2 . Если у этого справочника Реквизиты ЕдинцаИзмерения и СтавкаНДС?
3 Сделайте точку останова перед новыми строками и посмотрите что возвращает Номеклатура;

Автор: scoodizzy619 25.12.24, 21:32

Profi_1C77 @ Сегодня, 16:23 * ,

Все верно, ошибка появляется при введение тех двух строк.

1. У реквизита Услуга документа Котировка указан тип СправочникСсылка.Номенклатура поскольку из справочника Номенклатура подтягиваю нужные товары и услуги в табличную часть.



2. У документа Котировка на основе которого создаю документ СчетНаОплату, реквизитов ЕдиницаИзмерения и СтавкаНДС нету.
Данные реквизиты есть в справочнике Номенклатура.



3. Этот пункт не понял как реализовать.
Поставить точку останова перед теми двумя новыми строками и проверить что покажет?

Типа вот так? Если так то ничего не показывает

.НоваяСтрока.ЕдиницаИзмерения = НоваяСтрока.Номеклатура.ЕдиницаИзмерения;
.НоваяСтрока.СтавкаНДС= НоваяСтрока.Номеклатура.СтакаНДС;

Автор: scoodizzy619 25.12.24, 23:09

По третьему пункту не то вообще написал. Сейчас буду проверять по точке останова


3. Еще не совсем разобрался как работать с точкой останова но вот что показывает



Автор: Profi_1C77 26.12.24, 9:22

scoodizzy619 @ Вчера, 23:09 * ,

НоваяСтрока.Номенклатура  = ТекСтрокаДоходы.Услуга;

тут надо поставить точку остановки, выполнить, посмотреть что в отладчике , в табло, вернет
НоваяСтрока.Номенклатура

Автор: scoodizzy619 26.12.24, 12:04

Profi_1C77 @ Сегодня, 9:22 * ,

Понял. Ну отображает вот это. Но я не пойму почему значение такое.


Автор: scoodizzy619 26.12.24, 14:25

Все разобрался. Сейчас буду проверять.

Profi_1C77 @ Сегодня, 9:22 * ,

Вообщем выходит так:




После проверки тех двух строк выдает ошибку:

Помилка при виконанні обробника - 'ОбработкаЗаполнения'
через:
Значення не є значенням об`єктного типу (ЕдиницаИзмерения)
{Документ.СчетНаОплату.МодульОбъекта(71)}: НоваяСтрока.ЕдиницаИзмерения = НоваяСтрока.Номенклатура.ЕдиницаИзмерения;

А потом вот так:


Автор: Profi_1C77 26.12.24, 15:25

scoodizzy619 @ Сегодня, 14:25 * ,
Обратите внимание -
НоваяСтрока.ЕдиницаИзмерения - Справчоник КлассификаторЕдиницИзмерения
а в Номенклатуре - ЕдиницаИзмерения - вероятно Справочник ЕдиницыИзмерения;
Типы не совпадают

Автор: scoodizzy619 26.12.24, 15:36

Profi_1C77 @ Сегодня, 15:25 * ,

Как раз по типам все должно быть окей. Вот показываю на скринах:





Может проблема в том что реквизит ЕдиницаИзмерения в справочнике Номенклатура находится на в ТЧ, а тот же реквизит в документе СчетНаОплату в ТЧ?
Хотя по идеи это не должно вызывать проблем.

Автор: Profi_1C77 26.12.24, 15:46

scoodizzy619 @ Сегодня, 15:36 * ,
Ок. Есть AnyDesk? Напишите в личку - гляну по быстрому

Автор: scoodizzy619 26.12.24, 15:49

Profi_1C77 @ Сегодня, 15:46 * ,
Кинул в личку

Автор: Profi_1C77 26.12.24, 15:58

scoodizzy619 @ Сегодня, 15:49 * ,
Все оказалось банально просто - Номенклатура в Счете Тип Строка а не ссылка;

Автор: scoodizzy619 26.12.24, 16:00

Profi_1C77 @ Сегодня, 15:58 * ,

Очень благодарен вам.
Такая мелочь, а не заметил)

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