Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
27 сен 2024, 23:18

Требование накладная заполнение колонки. 1С 8.3

Автор 007_11, 10 дек 2018, 14:40

0 Пользователей и 1 гость просматривают эту тему.

007_11

Здравствуйте, подскажите пожалуйста как реализовать автоматическое заполнение ячеек в Требовании-накладной:


В шапке поле "Склад", нажимаем:


и видим:


Как сделать чтобы "Подразделение затрат" = СТРОЙКА с последнего скрина влияло на автоматическое заполнение колонки "Подразделение затрат" в табличной части?

wise

(0) ПриОкончанииРедактированияСтроки добавляешь:
Если ЗначениеЗаполнено(Объект.Склад) Тогда
    Элементы.Материалы.ТекущиеДанные.ПодразделениеЗатрат = Объект.Склад.ПодразделениеЗатрат;
КонецЕсли;
тут же необходимо подумать о ПриИзмененииСклад - чтобы подменить если склад поменяют...

p.s. Но что-то у Вас НЕ правильно спроектировано... ЛИШНЯЯ избыточность данных.
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

007_11

Цитата: wise от 10 дек 2018, 16:07
(0) ПриОкончанииРедактированияСтроки добавляешь:
Если ЗначениеЗаполнено(Объект.Склад) Тогда
    Элементы.Материалы.ТекущиеДанные.ПодразделениеЗатрат = Объект.Склад.ПодразделениеЗатрат;
КонецЕсли;
тут же необходимо подумать о ПриИзмененииСклад - чтобы подменить если склад поменяют...

p.s. Но что-то у Вас НЕ правильно спроектировано... ЛИШНЯЯ избыточность данных.

Повесил на кнопку "Автозаполнение текущей колонки":

Если ЗначениеЗаполнено(Объект.Склад) Тогда
    Элементы.Материалы.ТекущиеДанные.ПодразделениеЗатрат = Объект.Склад.ПодразделениеЗатрат;
КонецЕсли;

При сохранении конфигурации ошибок не вылезло.
Запустил 1С, при выделенном поле и нажатии на кнопку "Автозаполнение текущей колонки" вылезает сообщение: "Поле объекта не обнаружено (ПодразделениеЗатрат)"

Куда копать?

wise

(2) у Вас реквизиты(в справочнике ИЛИ таб.части) могут по другому называться... Проверьте...
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

007_11

Цитата: wise от 10 дек 2018, 17:34
(2) у Вас реквизиты(в справочнике ИЛИ таб.части) могут по другому называться... Проверьте...

Здравствуйте, подскажите пожалуйста как проверить, я совсем чайник.

Norfolk

Цитата: 007_11 от 11 дек 2018, 10:33
Цитата: wise от 10 дек 2018, 17:34
(2) у Вас реквизиты(в справочнике ИЛИ таб.части) могут по другому называться... Проверьте...

Здравствуйте, подскажите пожалуйста как проверить, я совсем чайник.
На клиенте у вас нету реквизитов объектов, только ссылки. Если зайти в отладчик, то вычислив выражение Объект.Склад вы увидите что у данного выражения нет больше полей.
Сделайте заполнение на сервере, что-то типа

&НаКлиенте
Процедура СкладПриИзменении()
    СкладПриИзмененииНаСервере();
КонецПроцедуры

&НаСервере
Процедура СкладПриИзмененииНаСервере()
    Для Каждого Стр из Объект.Материалы Цикл
        Стр.ПодразделениеЗатрат = Объект.Склад.ПодразделениеЗатрат;
    КонецЦикла;
КонецПроцедуры

007_11

Цитата: Norfolk от 11 дек 2018, 10:57
Цитата: 007_11 от 11 дек 2018, 10:33
Цитата: wise от 10 дек 2018, 17:34
(2) у Вас реквизиты(в справочнике ИЛИ таб.части) могут по другому называться... Проверьте...

Здравствуйте, подскажите пожалуйста как проверить, я совсем чайник.
На клиенте у вас нету реквизитов объектов, только ссылки. Если зайти в отладчик, то вычислив выражение Объект.Склад вы увидите что у данного выражения нет больше полей.
Сделайте заполнение на сервере, что-то типа

&НаКлиенте
Процедура СкладПриИзменении()
    СкладПриИзмененииНаСервере();
КонецПроцедуры

&НаСервере
Процедура СкладПриИзмененииНаСервере()
    Для Каждого Стр из Объект.Материалы Цикл
        Стр.ПодразделениеЗатрат = Объект.Склад.ПодразделениеЗатрат;
    КонецЦикла;
КонецПроцедуры


Попытался повесить это на кнопку "Автозаполнение текущей колонки" и при сохранении получил:
{Документ.ТребованиеНакладная.Форма.ФормаДокумента.Форма(647,11)}: Процедура или функция с указанным именем уже определена (СкладПриИзмененииНаСервере)
Процедура <<?>>СкладПриИзмененииНаСервере() (Проверка: Сервер)
{Документ.ТребованиеНакладная.Форма.ФормаДокумента.Форма(451,11)}: Процедура или функция с указанным именем уже определена (СкладПриИзменении)
Процедура <<?>>СкладПриИзменении() (Проверка: Тонкий клиент)

Norfolk

Ну система же пишет вам, что у вас уже эти процедуры определены. Если повешали на кнопку, то мой код скопируйте в процедеру обработчика кнопки.

Процедура КомандаВыполнить(Команда)
    КомандаВыполнитьНаСервере();
КонецПроцедуры

Процедура КомандаВыполнитьНаСервере()
    Для Каждого Стр из Объект.Материалы Цикл
        Стр.ПодразделениеЗатрат = Объект.Склад.ПодразделениеЗатрат;
    КонецЦикла;
КонецПроцедуры

как-то так.

wise

(7) Вы ПРАВЫ.!
но можно и с клиента... в типовых ОБЫЧНО есть:
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Склад, "ПодразделениеЗатрат");
только вызываются с какого-нибудь модуля ОбщегоНазначенияВызовСервера
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

007_11

Цитата: Norfolk от 11 дек 2018, 11:47
Ну система же пишет вам, что у вас уже эти процедуры определены. Если повешали на кнопку, то мой код скопируйте в процедеру обработчика кнопки.

Процедура КомандаВыполнить(Команда)
    КомандаВыполнитьНаСервере();
КонецПроцедуры

Процедура КомандаВыполнитьНаСервере()
    Для Каждого Стр из Объект.Материалы Цикл
        Стр.ПодразделениеЗатрат = Объект.Склад.ПодразделениеЗатрат;
    КонецЦикла;
КонецПроцедуры

как-то так.

Здравствуйте, скопировал, по нажатию на кнопку никаких действий не происходит.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск