Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
13 Дек 2017, 20:02
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Вызов функции модуля формы документа из внешней обработки  (Прочитано 13177 раз)

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

Оффлайн red14_88

  • *
  • Сообщений: 22
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-01-22
  • Сайт: 
  • Профессия: Ученик 1С
Есть ряд документов, которые заполняются из Excel. Обработка заполнения универсальная для нескольких документов (ПоступлениеТМЦРозница,ВводОстатковТМЦ и т.д.) в комплексной конфе 503 релиза (с доработками в вышеуказанных документах). Заполняются - номенклатура, количество и сумма по строке. Задача - сделать так, чтобы автоматом подставлялись основная единица измерения, коэффициент, ставки налогов, некоторые самодельные реквизиты и т.д. Просто прописать действия из этих функций в обработке - не вариант, т.к. для разных документов автозаполнение разное, а обработка должна быть одна.
Пробовал так:
Код
№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№
   НовОбъект.ЗагрузитьТабличнуюЧасть(ТЗПров);
   НовОбъект.Записать();
   ОткрытьФорму(НовОбъект.ТекущийДокумент(),КонтДок);
   
   НовОбъект.ВыбратьСтроки();         
   Пока НовОбъект.ПолучитьСтроку () = 1 Цикл
      КонтДок.Форма.ОбработкаОжидания("ПриИзмененииНоменклатуры",1);
      Сообщить ("Ок" + КонтДок + НовОбъект.Номенклатура);
   КонецЦикла;
№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№
Но, я так понимаю, ни обход строк табличной части, ни вызов процедуры не срабатывают (для первой строки НовогоОбъекта через раз выполняется). Подскажите, пожалуйста, что я делаю не так. Заранее всем спасибо.


Оффлайн prog1c7.7

  • Модератор
  • *****
  • Сообщений: 784
  • РЕПУТАЦИЯ: 260
  • КПД: 33%
  • ну - да , ну - да...
  • Регистрация: 2010-10-20
  • Сайт: 
  • Профессия: Программист 1С
ПриИзмененииНоменклатуры
глянем?

Оффлайн red14_88

  • *
  • Сообщений: 22
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-01-22
  • Сайт: 
  • Профессия: Ученик 1С
//******************************************************************************
// ПриИзмененииНоменклатуры()
//
// Параметры:
//  Нет
//
// Возвращаемое значение:
//  Нет
//
// Вызывается из формул элементов диалога:
//  Колонка "Номенклатура" табличной части документа.
//
// Описание:
//  Производит проверку правильности выбора номенклатуры (Не даем выбрать услугу)
//
Процедура ПриИзмененииНоменклатуры()
   
   Если Номенклатура.Выбран()=1 Тогда
      Если Номенклатура.ВидНоменклатуры=Перечисление.ВидыНоменклатуры.Услуга Тогда
         Предупреждение("В этом документе услугу выбирать нельзя!",60);
          Номенклатура = "";
      ИначеЕсли Номенклатура.ВидНоменклатуры=Перечисление.ВидыНоменклатуры.Работа Тогда
         Предупреждение("В этом документе работы выбирать нельзя!",60);
          Номенклатура = "";
      КонецЕсли;   
   КонецЕсли;
   
   //Единица    = Номенклатура.БазоваяЕдиница;
   //Коэффициент = Единица.Коэффициент;
   //СтавкаНДС    = Номенклатура.СтавкаНДС;
   //
   СтараяПартия = Партия;
   Если ПустоеЗначение(Партия) = 0 Тогда
      Если Партия.Владелец <>  Номенклатура Тогда
         УдалитьПартию();
         Партия = "";
      КонецЕсли;
   КонецЕсли;
   
    СоздатьПартию(СтараяПартия);

   Если ПустоеЗначение(Номенклатура) = 1 Тогда
         
      // Очистили Номенклатуру
      Единица       = 0;
      Коэффициент    = 0;                 
      Возврат;
   КонецЕсли;

   // Определим, поменяли ли Номенклатуру?
   НоваяНоменклатура = 0;
   Если ПустоеЗначение(Единица) = 1 Тогда
      НоваяНоменклатура = 1;
   ИначеЕсли Номенклатура <> Единица.Владелец Тогда
      НоваяНоменклатура = 1;
   КонецЕсли;
   
   Если НоваяНоменклатура = 0 Тогда
      Возврат;
   КонецЕсли;
   
   // заполняем единицу
   Единица       = Номенклатура.ОсновнаяЕдиница;
   Коэффициент    = Единица.Коэффициент;   
   
       // Заполним ставки налогов
   СтавкаНДС    = Номенклатура.СтавкаНДС;      
    СтавкаНП    = Номенклатура.СтавкаНП;
            
КонецПроцедуры // ПриИзмененииНоменклатуры()
#######################################################
Это из документа ВводОстатковТМЦ. Действия несложные, но воспроизводить их для каждого документа не хотелось бы, тем более что для каждого хоть чем-то да отличаются.

Оффлайн prog1c7.7

  • Модератор
  • *****
  • Сообщений: 784
  • РЕПУТАЦИЯ: 260
  • КПД: 33%
  • ну - да , ну - да...
  • Регистрация: 2010-10-20
  • Сайт: 
  • Профессия: Программист 1С
Пока НовОбъект.ПолучитьСтроку () = 1 Цикл
НовОбъект.АктивизироватьСтроку(НомерСтроки);

Оффлайн red14_88

  • *
  • Сообщений: 22
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-01-22
  • Сайт: 
  • Профессия: Ученик 1С
Активизация строки не даёт ровным счетом ничего... :dfbsdfbsdf:

Оффлайн prog1c7.7

  • Модератор
  • *****
  • Сообщений: 784
  • РЕПУТАЦИЯ: 260
  • КПД: 33%
  • ну - да , ну - да...
  • Регистрация: 2010-10-20
  • Сайт: 
  • Профессия: Программист 1С
ты делаешь обход в нем делаешь процедуру, правильно понял?
зачем обработкаожидания ?

Оффлайн red14_88

  • *
  • Сообщений: 22
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-01-22
  • Сайт: 
  • Профессия: Ученик 1С
Другого способа вызвать процедуру не нашёл вообще.

Оффлайн prog1c7.7

  • Модератор
  • *****
  • Сообщений: 784
  • РЕПУТАЦИЯ: 260
  • КПД: 33%
  • ну - да , ну - да...
  • Регистрация: 2010-10-20
  • Сайт: 
  • Профессия: Программист 1С
как заполнятся автоматом?
всмысле типа включил обработку она висит целый день номенклатуру отслеживает и
забивает изменения, так чтоли?
повторяю вопрос:
зачем обработкаожидания ?

Оффлайн red14_88

  • *
  • Сообщений: 22
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-01-22
  • Сайт: 
  • Профессия: Ученик 1С
Да, как заполняться автоматом (в зависимости от вида документа). Обработка ожидания выбрана просто как первый попавшийся под руку вариант. Нужно заполнение автоматом, реализованное в форме каждого из документов поутём обращения к методам формы. Это должно обеспечить универсальноть и тот момент, что если что-то изменить в методе формы-потом не надо будет лезть в обработку.

Оффлайн prog1c7.7

  • Модератор
  • *****
  • Сообщений: 784
  • РЕПУТАЦИЯ: 260
  • КПД: 33%
  • ну - да , ну - да...
  • Регистрация: 2010-10-20
  • Сайт: 
  • Профессия: Программист 1С
нужно просто из экселя настроить выгрузку в документы перечисленные?
ТЗПров - вы уже вытянули из экселя, я так понял,
получился готовый документ уже, правильно?
и внем надо поменять реквизиты элемента строковой части документа - номенклатура,
тогда нужен обход по строкам , активизирование строки и  дальше редактирование элемента  номенклатура.
Обработка ожидания не нужна


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
172 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
39 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 350
  • Точка Скрытых: 0
  • Точка Пользователей: 9
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal