Форум программистов, компьютерный форум, киберфорум
Наши страницы

1С: Собственные программы

Войти
Регистрация
Восстановить пароль
 
Swamp Doctor
1 / 1 / 0
Регистрация: 07.04.2015
Сообщений: 87
#1

Автоматическая замена табличных реквизитов, ссылающихся на реквизиты справочника - 1С

18.02.2017, 18:22. Просмотров 318. Ответов 7
Метки нет (Все метки)

Имеем таблицу в документе с реквизитом "товар", ссылающимся на "товар" в справочнике. У товара в справочнике есть реквизиты "цена" и "ндс". Как сделать, что бы при выборе в таблице реквизита ссылающегося на "товар" в таблице автоматически менялись значения реквизитов "ндс" и "цена" на теже, что хранятся в справочнике "товар". При этом значение в ещё одном табличном реквизите "цена с ндс" должно поменяться на "цену" + "ндс" автоматически вставленных реквизитов.

Это делается стандартными средствами программы или где и как написать код?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2017, 18:22
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Автоматическая замена табличных реквизитов, ссылающихся на реквизиты справочника (1С):

1C 8.x [1C 8.1.11.67 УТ 10.3] Автоматическая замена текста в элементе справочника номенклатуры как возможна? - 1С
1C 8.1.11.67 УТ 10.3 Автоматическая замена текста в элементе справочника номенклатуры как возможна? Стандартными средствами? - где...

У справочника контрагенты изменились реквизиты - 1С
Задача, подразумевается изменение некоторых реквизитов справочника, допустим контрагенты. я создал регистрСведенийОконтрагентах, в...

Перенос реквизитов справочника в документ - 1С
Есть справочник Товары с реквизитами Автор и Журнал. Есть документ Договор с реквизитами Счет и Скорость. Если содержание реквизита...

Печать реквизитов в документе из справочника - 1С
Добрый день.Может кто подскажет как можно распечатать документ если в нем участвуют реквизиты косвенные из справочников? пример: У меня...

1C 8.x Заполнение ТЧ Документа из Реквизитов справочника - 1С
нужно заполнить ТЧ документа из Реквизита справочника. &НаКлиенте Процедура КлиентПриИзменении(Элемент) Объект.Телефоны =...

Создание документа: как выбрать реквизиты из справочника? - 1С
Подскажите, пожалуйста, как мне во вновь создаваемый документ выбрать элемент из справочника "Клиенты". &НаСервере Процедура...

7
GreenkA
(◉‿◉)
Эксперт 1С
1964 / 1502 / 474
Регистрация: 25.06.2009
Сообщений: 5,401
18.02.2017, 18:52 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Swamp Doctor, написать код на событие поля таблицы ТоварПриИзменении(). Код зависит от типа приложения. Пример для управляемой формы:
1C
1
2
3
4
5
6
7
8
9
10
11
&НаКлиенте
Процедура ИмяТабличнойЧастиТоварПриИзменении(Элемент)
 ТекущаяСтрока = Элемент.Родитель.ТекущиеДанные; //можно Элементы.ИмяТабличнойЧасти.ТекущиеДанные;
 ТекущаяСтрока.Цена = ПолучитьЗначениеРеквизитаНаСервере(ТекущаяСтрока, "Цена");
 ТекущаяСтрока.НДС = ПолучитьЗначениеРеквизитаНаСервере(ТекущаяСтрока, "НДС");
КонецПроцедуры
 
&НаСервереБезКонтекста
Функция ПолучитьЗначениеРеквизитаНаСервере(ТекущийЭлемент, ИмяРеквизита)
 Возврат ТекущийЭлемент[ИмяРеквизита];
КонецФункции
1
Swamp Doctor
1 / 1 / 0
Регистрация: 07.04.2015
Сообщений: 87
18.02.2017, 21:45  [ТС] #3
Спасибо. Я зашёл в свойства документа и создал команду так? Если честно я не очень в синтаксисе 1С и эксперименты никуда не привели.

1C
1
2
3
4
5
6
&НаКлиенте
Процедура ТаблицаТоварПриИзменении(Приходная)
 ТекущаяСтрока = Приходная.Таблица.ТекущиеДанные;
 ТекущаяСтрока.Цена = ПолучитьЗначениеРеквизитаНаСервере(ТекущаяСтрока, "Цена");
 ТекущаяСтрока.НДС = ПолучитьЗначениеРеквизитаНаСервере(ТекущаяСтрока, "НДС");
КонецПроцедуры
Имя табличной части: Таблица
Имя справочника: Товар
Имя элемента: Что такое элемент?
Имя документа: Накладная
Имена табличных реквизитов: цена, ндс
Имена реквизитов справочника: цена, ндс
0
GreenkA
(◉‿◉)
Эксперт 1С
1964 / 1502 / 474
Регистрация: 25.06.2009
Сообщений: 5,401
18.02.2017, 22:01 #4
Swamp Doctor, а функцию ПолучитьЗначениеРеквизитаНаСервере() вы в модуле формы написали?

Добавлено через 45 секунд
Swamp Doctor,
1C
1
2
3
4
5
6
&НаКлиенте
Процедура ТаблицаТоварПриИзменении(Элемент)
 ТекущаяСтрока = Элементы.Таблица.ТекущиеДанные;
 ТекущаяСтрока.Цена = ПолучитьЗначениеРеквизитаНаСервере(ТекущаяСтрока, "Цена");
 ТекущаяСтрока.НДС = ПолучитьЗначениеРеквизитаНаСервере(ТекущаяСтрока, "НДС");
КонецПроцедуры
Добавлено через 3 минуты
Элемент - это текущий элемент формы.
Это не просто код, который надо прописать в модуле формы документа. Его надо связать с событием элемента формы. В окне редактирования формы выделяете столбец "Товар" - Свойства, внизу будет перечень доступных Событий. Напротив ПриИзменении() нажимаете значок лупы.
1
Swamp Doctor
1 / 1 / 0
Регистрация: 07.04.2015
Сообщений: 87
18.02.2017, 22:22  [ТС] #5
Где писать разобрался. При выборе товара возникает ошибка (Ошибка отображения типов: Отсутствует отображение для типа"ДанныеформыЭлементыКоллекции")
0
GreenkA
(◉‿◉)
Эксперт 1С
1964 / 1502 / 474
Регистрация: 25.06.2009
Сообщений: 5,401
19.02.2017, 01:04 #6
Swamp Doctor, выложите вашу конфигурацию.
0
Swamp Doctor
1 / 1 / 0
Регистрация: 07.04.2015
Сообщений: 87
19.02.2017, 20:42  [ТС] #7
Спасибо, но она слишком мала и нелепа, что бы её выкладывать. Да и мне крайне важно разобраться самому, что к чему. Ошибка отображения типов: Отсутствует отображение для типа"ДанныеформыЭлементыКоллекции"
После сотни переборов синтаксиса я понял, что вы забыли написать для меня что берёт ТекущаяСтрока для функции.
1C
1
2
3
ТекущаяСтрока = Элементы.Таблица.ТекущиеДанные;
ТекущаяСтрока.Цена = ПолучитьЗначениеРеквизитаНаСервере(ТекущаяСтрока.Товар, "Цена");
ТекущаяСтрока.НДС = ПолучитьЗначениеРеквизитаНаСервере(ТекущаяСтрока.Товар, "НДС");
Спасибо, что отвечаете на глупые вопросы новичков.
Тему закрываю, но будет здорово если ещё напишите пример кода с суммированием двух реквизитов.

Добавлено через 1 час 37 минут
1C
1
2
ТекущаяСтрока.Итогос = (ТекущаяСтрока.Цена + (ТекущаяСтрока.Цена / 100 * ТекущаяСтрока.НДС)) * ТекущаяСтрока.Количество;
ТекущаяСтрока.Итогоб = ТекущаяСтрока.Цена * ТекущаяСтрока.Количество;
0
Dethmontt
Модератор
Эксперт 1С
2575 / 2383 / 390
Регистрация: 10.03.2011
Сообщений: 8,424
Записей в блоге: 1
Завершенные тесты: 1
20.02.2017, 10:37 #8
Swamp Doctor,
1C
1
2
3
4
5
ТекущаяСтрока = Элементы.Таблица.ТекущиеДанные;
ТекущаяСтрока.Цена = ПолучитьЗначениеРеквизитаНаСервере(ТекущаяСтрока.Товар, "Цена");
ТекущаяСтрока.НДС = ПолучитьЗначениеРеквизитаНаСервере(ТекущаяСтрока.Товар, "НДС");
////////////////////////////////
ТекущаяСтрока.ЦенаСНДС = ТекущаяСтрока.Цена+ТекущаяСтрока.НДС;
0
20.02.2017, 10:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2017, 10:37
Привет! Вот еще темы с ответами:

1C 8.x Управляемые формы, а также доп. реквизиты справочника - 1С
Здравствуйте! Я наконец-то начал работать с управляемыми формами, а также доп. реквизитами справочника, которые были введены в режиме...

1C 8.x Данные реквизитов из другого справочника в таблице - 1С
Приветствую. Глобальная затея: сделать оценочный табель Имеется: Справочник 1- НазваниеСпециальности(группа) Предмет(элемент группы)...

Заполнение реквизитов справочника Номенклатура программно в 1С - 1С
Здравствуйте. Помогите решить задачку. Необходимо заполнить реквизит Брэнд в справочнике Номенклатура из Excel. 1. Создала обработку в...

1C 8.x (тонкий) Изменение реквизитов справочника при проведении документа - 1С
Доброго времени суток! Прошу помочь, нужно изменить реквизиты элементов справочника "ОбъектыПроката" при проведении документа...


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

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

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