[РЕШЕНО] Работа с методом "ввод на основании"

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем GAMI1991, 24 апр 2015.

  1. TopicStarter Overlay
    GAMI1991
    Offline

    GAMI1991 Опытный в 1С

    Регистрация:
    5 фев 2015
    Сообщения:
    71
    Симпатии:
    1
    Баллы:
    29
    Добрый день!
    Прошу сильно не ругаться, но у меня вот тут такой вопрос. При создании на основании как из одного документа перенести значение суммы табличной части в реквизит другого документа?
    Конструктор в этом случае не поможет, надо программно а у меня с этим туго... Помогите пожалуйста!

    вот это надо перенести - Сумма(итог) считается по колонке "Сумма".
    upload_2015-4-24_13-29-15.png
  2. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.756
    Симпатии:
    509
    Баллы:
    204
    Почитайте в СП про метод Заполнить(), а так же про обработчик ОбработкаЗаполнения().
  3. TopicStarter Overlay
    GAMI1991
    Offline

    GAMI1991 Опытный в 1С

    Регистрация:
    5 фев 2015
    Сообщения:
    71
    Симпатии:
    1
    Баллы:
    29
    А читала, через ОбработкаЗаполнения у меня заполняются все реквизиты кроме этой СУММЫ, я не знаю как сумму по табличной части запихнуть в реквизит другого документа.....
    Помогите....
  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.756
    Симпатии:
    509
    Баллы:
    204
    Ну видимо Сумма(итог) - это реквизит формы.
    Тут два варианта - либо дергать с формы значение и использовать РекфизитФормыВЗначение() либо на сервере обрабатывать ТЧ.
    У табличной части есть метод - Итого.
  5. TopicStarter Overlay
    GAMI1991
    Offline

    GAMI1991 Опытный в 1С

    Регистрация:
    5 фев 2015
    Сообщения:
    71
    Симпатии:
    1
    Баллы:
    29
    Хорошо на сервере обработала и нашла итог по табличной части, как теперь его поместить в реквизит "сумма" через ОбработкуЗаполнения?
    Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда
    Поставщик = ДанныеЗаполнения.Поставщик;
    Сумма = ???????
    КонецЕсли;
    КонецПроцедуры
  6. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.756
    Симпатии:
    509
    Баллы:
    204
    Так это неправильно. У вас же табличная часть должна сначала заполняться, и только потом итоговая сумма отобразиться.
  7. TopicStarter Overlay
    GAMI1991
    Offline

    GAMI1991 Опытный в 1С

    Регистрация:
    5 фев 2015
    Сообщения:
    71
    Симпатии:
    1
    Баллы:
    29
    Вначале заполняется табличная часть Документа "Приход", далее делается команда "заполнить на основании", после чего выводится документ "Кассовый ордер" в реквизите которого выводится сумма по столбцу "Сумма" документа "Приход".
    Вы бы не могли подсказать хоть какой то пример моей ситуации?
    Спасибо!
  8. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.756
    Симпатии:
    509
    Баллы:
    204
    Ну как-то так на коленке:
    Код:
    Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда
    Поставщик = ДанныеЗаполнения.Поставщик; //при условии что он нужен в документе.
    СуммаПоставки = ДанныеЗаполнения.ТабличнаяЧастьМатериалы.Итого();
    Сумма = СуммаПоставки;
    КонецЕсли;
    КонецПроцедуры
    Причем этот код должны прописать в модуле объекта документа КассовыйОрдер
  9. TopicStarter Overlay
    GAMI1991
    Offline

    GAMI1991 Опытный в 1С

    Регистрация:
    5 фев 2015
    Сообщения:
    71
    Симпатии:
    1
    Баллы:
    29
    Просто документ Кассовый Ордер должен вводится на основании документа Приход.
  10. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.756
    Симпатии:
    509
    Баллы:
    204
    Так и я про то. Сначала идет Приход, потом оплата.
  11. TopicStarter Overlay
    GAMI1991
    Offline

    GAMI1991 Опытный в 1С

    Регистрация:
    5 фев 2015
    Сообщения:
    71
    Симпатии:
    1
    Баллы:
    29
    Вы правы, но я уже совсем запуталась. Как вывести оплату?
  12. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.756
    Симпатии:
    509
    Баллы:
    204
    Теперь вы меня запутали.
    Сначала вводится документ поступления, на его основании вводится документ оплаты.
  13. TopicStarter Overlay
    GAMI1991
    Offline

    GAMI1991 Опытный в 1С

    Регистрация:
    5 фев 2015
    Сообщения:
    71
    Симпатии:
    1
    Баллы:
    29
    Да именно так и происходит.
  14. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.756
    Симпатии:
    509
    Баллы:
    204
    Вот я и написал вам код, который в модуле объекта документа КассовыйОрдер нужно прописать.
  15. TopicStarter Overlay
    GAMI1991
    Offline

    GAMI1991 Опытный в 1С

    Регистрация:
    5 фев 2015
    Сообщения:
    71
    Симпатии:
    1
    Баллы:
    29
    alexburn,извините но я кода не вижу...
  16. TopicStarter Overlay
    GAMI1991
    Offline

    GAMI1991 Опытный в 1С

    Регистрация:
    5 фев 2015
    Сообщения:
    71
    Симпатии:
    1
    Баллы:
    29
    Ребята, помогите....:(
  17. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.756
    Симпатии:
    509
    Баллы:
    204
    Код:
    Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда
    Поставщик = ДанныеЗаполнения.Поставщик; //при условии что он нужен в документе.
    СуммаПоставки = ДанныеЗаполнения.ТабличнаяЧастьМатериалы.Итого();
    Сумма = СуммаПоставки;
    КонецЕсли;
    КонецПроцедуры
    GAMI1991 нравится это.
  18. TopicStarter Overlay
    GAMI1991
    Offline

    GAMI1991 Опытный в 1С

    Регистрация:
    5 фев 2015
    Сообщения:
    71
    Симпатии:
    1
    Баллы:
    29
    --- Объединение сообщений, 24 апр 2015 ---
    Спасибо Вам огромное!
    Только чтоб заработало нужно написать:
    СуммаПоставки = ДанныеЗаполнения.Материалы.Итог("Сумма");
    Удачного вам дня и хорошего настроения!
    Последнее редактирование: 24 апр 2015
  19. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.756
    Симпатии:
    509
    Баллы:
    204
    Ну я же писал на коленке :D
    Спасибо, и вам не хворать :)

Поделиться этой страницей