Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Вызов команды другого документа

Суть:
Есть документ "Налоговая накладная" у которого в командной панели есть ссылка на команду документа "ВыгрузкаРегламентированныхОтчетов" , а именно "ВыгрузитьВXML"  (Документ.ВыгрузкаРегламентированныхОтчетов.Команда.ВыгрузитьВXML)
В стандартной панели все ок, команда отрабатывает.

Создал свою кнопку в Форме документа "РеализацияТоваровУслуг", у которого есть ссылка на налогувую.

Подскажите, пожалуйста, как вызвать Команду выгрузки в XML?
Ответ: А зачем вызывать из другого? Собственную команду надо рисовать или подключать доступную и делать то, что нужно.
И меня терзает мысль, что не нужна команда по выгрузке регл. отчетности в реализации товаров и услуг.
Вопрос: Выполнение процедур документа из другого документа.

Добрый день люди.
Есть задача:
требуется в документе сформировать список просроченных документов (A), а затем весь этот список дружно оплатить и закрыть. Закрываются и оплачиваются они все другим документом(Х), который вызывает документ(У) расчёт процентов. Причем на каждый просроченный документ нужно создать по одному документу (X) соответственно и по одному документу (У).
Сначала возникла идея создавать документ (Х) из документа (А) со списком и запускать его процедуры в ОткрытьФормуМодально(...,Х,0) но выяснилось что таким образом невозможно запустить процедуры документа (Х). Затем появилась идея закинуть куски кода (Х) и (У) в код документа (А), но она отпала потому что если понадобится откорректировать какое то из этих закрытий, то их потом не найти. Да и эти закрытия в журнале документов потом нужны на каждый просроченный документ. Может кто подскажет как реализовать множественное создание документов и запуск их внутренних процедур, без участия пользователя?
Приветствуются ссылки на костыли и велосипеды. Грабли в конструкции не подойдут.
Ответ: Всё заработало, всех благодарю, есть правда косячок, окошки документов мелькают, однако даже так, скорость закрытия просрочек многократно возросла.
Вопрос: Отсторнировать движения другого документа

Добрый день!
Хочу отсторнировать движения другого документа в новом документе. Для этого в модуле объекта пишу процедуру:
Код:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    Набор = ДокументПоступленияТоваровИУслуг.ПолучитьОбъект().Движения;
    Если Набор.Количество()>0 Тогда
        Для Каждого НаборСтр Из Набор Цикл
            НаборСтр.Прочитать();
            Если НаборСтр.Количество()>0 Тогда
                Для Каждого НаборСтрТек Из НаборСтр Цикл
                    //Движение = Движения[НаборСтрТек].Добавить();
                КонецЦикла;
            КонецЕсли;
        КонецЦикла;  
    КонецЕсли;
КонецПроцедуры
У документа ПоступлениеТоваровУслуг для каждого регистра накопления или сведений хочу добавить движение и не пойму как правильно обратиться к нужному регистру текущего документа по имени регистра из набора документа ПоступлениеТоваровУслуг. В Синтаксис-Помощнике только по номеру записи обращение, но порядок регистров может ведь не совпадать.
Ответ:
Спасибо! Что-то переклинило и не смог вспомнить как по имени в индексе обратиться.
Только Метаданные() как функция, а не свойство.
Вопрос: Заполнение на форме данными из другого документа

Здравствуйте! Перейду собственно к проблеме - имеется два документа (Допустим Док1 и Док2), в одном документе есть совпадающие реквизиты (допустим ФИО и Адрес), которые необходимо автоматически заполнять из другого документа по кнопке на форме, чтобы не вводить их заново (но иногда некоторые реквизиты не заполняются в документе откуда требуется брать данные для заполнения). Подскажите, пожалуйста, возможную реализацию кода. Таблиц нет, есть только реквизиты, которые требуется скопировать. Смотрел ОбработкаЗаполнения(), но получалось только когда создавал один документ на основании другого, но это другое - мне надо чтобы по кнопке на форме заполнялись эти данные.
Ответ: GreenkA, оказывается все просто))) Еще раз спасибо)
Вопрос: v7: Напомните, как получить макет таблицы из другого документа?

Есть Документ1, в котором есть Таблица1 (макет вывода печатной формы). Можно ли обратиться к Таблица1 из контекста формы другого документа, чтобы использовать в методе ИсходныйДокумент?
Ответ: () и внешние печатные формы.
Вопрос: Глобальная параметризуемая команда

Добрый день! УТ 11.2 8.3 Управляемые формы.

Создал документ, на его основании программно создаются другие документы. Необходимо смотреть структуру подчиненности введеных документов. У стандартных документов это реализовано на форме через Отчет - Структура документа. Как на новом документе реализовать? Посмотрел в стандартном документе, на вкладке Глобальные команды есть ОбщаяКоманда.ОтчетыОбъекта - (Объект.Ссылка) и она добавлена на форму, я так понимаю структура подчиненности от сюда формируется. У своего документа я вижу только ОбщаяКоманда.ОтчетыОбъекта - (Объект.МестоПокупки2).

Прилагаю картинки.

Вложения:

  • Размер файла:
    162 КБ
    Просмотров:
    7
  • Размер файла:
    148,2 КБ
    Просмотров:
    7
  • Размер файла:
    129,7 КБ
    Просмотров:
    6
Ответ:
Смотри как утроен вызов в стандартных документах. Загляни в дерево элементов формы.
Нужно добавить группы типа подменю, назвать их "ПодменюОтчеты".
Вопрос: Изменить значение реквизитов ТЧ документа по событию проведения другого документа

Здравствуйте.В собственной конфе 1С 8.3 есть документ "ОбъектныйГрафик" с ТЧ "Задания". Также есть документ "ИнформационныйЛистокОвыдачеЗадания" с реквизитами: График - ссылка на график.; ВыдающийОтдел, ПринимающийОтдел - СправочникСсылка.Подразделения;Задание -справочникссылка.задания;СрокФактический - Дата....В ТЧ "Задания" документа "ОбъектныйГрафик" те же реквизиты. Мне нужно сделать следующее: при выполнении команды "ПринятьЗадание" формы документа "ИнформационныйЛистокОвыдачеЗадания" найти в ТЧ графика задание, указанное в документе для выбранных выдающего и принимающего отдела и заполнить реквизиты найденной строки ТЧ графика реквизитами документа "ИнформационныйЛистокОвыдачеЗадания", затем конечно записать изменения в графике. Для этого сделал следующее в форме документа "ИнформационныйЛистокОвыдачеЗадания":
Код:
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    // Вставить содержимое обработчика.
    ЗапросНомераЗадания=Новый Запрос;    //получение номера строки ТЧ графика с нужным заданием
    ЗапросНомераЗадания.Текст="ВЫБРАТЬ
                              |    ОбъектныйГрафикЗадания.НомерСтроки КАК НомерЗадания
                              |ИЗ
                              |    Документ.ОбъектныйГрафик.Задания КАК ОбъектныйГрафикЗадания
                              |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОбъектныйГрафик КАК ОбъектныйГрафик
                              |        ПО ОбъектныйГрафикЗадания.Ссылка = ОбъектныйГрафик.Ссылка
                              |ГДЕ
                              |    ОбъектныйГрафик.Ссылка = &График
                              |    И ОбъектныйГрафикЗадания.ВыдающийОтдел.Ссылка = &ВыдающийОтдел
                              |    И ОбъектныйГрафикЗадания.Задание.Ссылка = &Задание
                              |    И ОбъектныйГрафикЗадания.ПринимающийОтдел.Ссылка = &ПринимающийОтдел";
    ЗапросНомераЗадания.УстановитьПараметр("График",ТекущийОбъект.ОбъектныйГрафик.Ссылка);
     ЗапросНомераЗадания.УстановитьПараметр("ВыдающийОтдел",ТекущийОбъект.ГруппаВыдающаяЗадание.Ссылка);
      ЗапросНомераЗадания.УстановитьПараметр("Задание",ТекущийОбъект.Задание.Ссылка);
       ЗапросНомераЗадания.УстановитьПараметр("ПринимающийОтдел",ТекущийОбъект.ГруппаПолучающаяЗадание.Ссылка);
    Результат=ЗапросНомераЗадания.Выполнить().Выбрать();
    Пока Результат.Следующий() Цикл
    НомерЗадания=Результат.НомерЗадания;   
КонецЦикла;   
График=Документы.ОбъектныйГрафик.НайтиПоНомеру(ТекущийОбъект.ОбъектныйГрафик.Номер).ПолучитьОбъект();
СтрокаТЧ = График.Задания[НомерЗадания - 1];
СтрокаТЧ.ХарактеристикаЗадания=ТекущийОбъект.ХарактеристикаПолнотыЗаданияПринимающейГруппы;
Если ТекущийОбъект.Статус=Перечисления.СтатусФормыВыдачиЗадания.Утверждена Тогда
СтрокаТЧ.СтепеньВыполнения=ТекущийОбъект.ОценкаПолнотыЗаданияПринимающейГруппы;
СтрокаТЧ.ДатаВыдачиФакт=ТекущийОбъект.СрокФактический;
СтрокаТЧ.СостояниеЗадания=Перечисления.СостояниеЗадания.Выдано;
СтрокаТЧ.Примечание=ТекущийОбъект.Ссылка;
КонецЕсли;
График.Записать();
Если ТекущийОбъект.ГруппаВыдающаяЗадание=Параметрысеанса.Сотрудник.Подразделение И ЗаполненыПоляВыдающейСтороны()=ложь и Не ЗначениеЗаполнено(Объект.ФайлЗадания) тогда
Сообщить("Проверьте заполнение оценки и характеристики полноты задания,комментария выдающей стороны и указание файла задания");
Отказ=Истина;
КонецЕсли;
Если ТекущийОбъект.ГруппаПолучающаяЗадание=Параметрысеанса.Сотрудник.Подразделение И ЗаполненыПоляПринимающейСтороны()=ложь тогда
Сообщить("Проверьте заполнение оценки и характеристики полноты задания и комментария принимающей стороны");
Отказ=Истина;
КонецЕсли;
КонецПроцедуры

команда "ПринятьЗадание":
Код:
&НаСервере
Процедура ПринятьЗаданиеНаСервере()
    // Вставить содержимое обработчика.
    Формазадания=Объект.ссылка.ПолучитьОбъект();
    Формазадания.ОценкаПолнотыЗаданияПринимающейГруппы=100;
    Формазадания.ХарактеристикаПолнотыЗаданияПринимающейГруппы=Перечисления.ХарактеристикаПолнотыЗадания.ВыданоВПолномОбъеме;
Формазадания.СрокФактический=ТекущаяДата();   
//Формазадания.ГлавныйСпециалистПринимающейГруппы=Параметрысеанса.Сотрудник;
    Формазадания.Статус=Перечисления.СтатусФормыВыдачиЗадания.Утверждена;
//ПриЗаписиНаСервере(Ложь,Формазадания,);
ФормаЗадания.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный);
ОтправитьСообщениеОПринятииЗадания();
КонецПроцедуры


&НаКлиенте
Процедура ПринятьЗадание(Команда)
    ПринятьЗаданиеНаСервере();
    ЭтаФорма.Закрыть();
КонецПроцедуры
Если пользователь выполняет команду "ПринятьЗадание", система ругается: Данные были изменены.Сохранить изменения?(да/нет). Если нажимаешь "Да", следующее ругательство:"Данные были изменены или удалены другим пользователем." Что не так? как правильно сделать?
Ответ:
Ну я прочитал это всё.. и зацеплюсь за последнюю фразу "Как правильно сделать?"

А правильно сделать регистр накопления Остатков..

ОбъектныйГрафик будет в этот регистр делать движения с заданиями в приход.. это будут не разобранные задания.

А документ ИнформационныйЛистокОвыдачеЗадания будет делать в этот регистр движение расход.

1) Вы всегда сможете сделать срез по Заданиям которые ещё не приняты в исполнение
2) Вы можете построить отчет по Заданиям, документам их инициализирующим (ОбъектныйГрафик) и по документам которыми они были приняты .

А вы планируете в каждый документ ОбъектныГрафик заходить и смотреть ТЧ Задания и видеть принята задача или нет. А ещё хуже может и отчет по документам написать.
Вопрос: Вызов дополнительной формы документа

У меня ЗУП 3.0 на управляемых формах.

Есть документ Изменение штатного расписания. Я в него добавил кнопку для вызова не основной формы документа, а дополнительной, т.е. созданной мною. На эту форму я вынес настройки печати приказа.

Вопрос: Как мне сделать так, чтоб в открытой форме Объект, т.е. основной реквизит формы, ссылался бы на тот документ из которого его открыли. а он выдает форму где Объект.Ссылка - ПУСТАЯ. Соот-но все реквизиты шапки тоже пустые и если изменить что-либо данные не появляются в основной форме.
Ответ: без обид. Что касается что пишу... всё норм. Разрабатывается сложный механизм печати приказов. для этого в документы добавлены реквизиты и табличные части для ввода настроек. но курочить типовую форму очень не хорошо. для этого создана новая. но нужно чтоб в новой форме отображались реквизиты документа некоторые. вот такая задача
Вопрос: Перезапись движений документа другим документом

Всем привет. Конфигурация Бух Корп 3.0.
Ситуация следующая: конфа нетиповая, хочу сделать типовую, т.е. загрузив конфигурацию поставщика, но тогда все "дописки" логично слетят. В роли "дописок" выступают 2 документа:
1)"Перемещение инвентаря", который делает движение по регистру бухгалтерии, по счету МЦ.04(забалансовый), Сумма = сумма, указанная в строке ТЧ документа;
2)"Перемещение товаров в другой филиал", СчетДт = 79.04(активный/пассивный, не предопределенный), СчетКт = 10.01(активный), Сумма = сумма, указанная в строке ТЧ документа.

Соответственно, хочу сделать движения этих документов, но уже через "Операции, введенные вручную", чтобы после "затирания" не нарушился баланс. Осложняется еще и тем, что периоды закрыты.
Поступало так же предложение, "сохранить" остатки на определенный период, но с этим вообще глухой лес, т.е. что это и с чем его едят в душе не размножаюсь.

Буду рад любым решениям, желательно с детальным разбором, так как данную конфу знаю не очень хорошо, а бухгалтера уже практически доели мой мозг.
Ответ:
Кому интересно поступил так(решение подсказали не здесь):

Запросом выбираю ссылки на заменяемые документы, в цикле их обхожу вот таким кодом:

Код:

НовыйДокумент = Документы.ОперацияБух.СоздатьДокумент();
        НовыйДокумент.Дата = ВыборкаДетальныеЗаписи.Дата;
        НовыйДокумент.Записать();
       
        Запись = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
        Запись.Отбор.Регистратор.Значение = ВыборкаДетальныеЗаписи.Ссылка;
        Запись.Прочитать();
        ЗаписьТЗ = Запись.Выгрузить();
       
        Для каждого Стр Из ЗаписьТЗ Цикл
            Стр.Регистратор = НовыйДокумент.Ссылка;
        КонецЦикла;
       
        Запись.Очистить();
        Запись.Записать();
       
        Запись.Загрузить(ЗаписьТЗ);
        Запись.Отбор.Регистратор.Значение = НовыйДокумент.Ссылка;
        Запись.Записать();
       
        Сообщить("Заменен документ "+ВыборкаДетальныеЗаписи.Ссылка);


Вопрос: Обращение к реквизиту (ссылка) другого документа 1с 7.7

Всем Здравствуйте!
Нужна помощь, в программировании я не силен. В конфигураторе 1с 7.7 (нетиповая конфигурация, база полностью самописная) имеются документы - "начислениепремии" и "начислениепремии2" (смотрите скриншоты в архиве)
Мне необходимо в модуле НачислениеПремии2 обратиться к реквизиту табличной части – "Сумма" документа НачислениеПремии
А именно конкретней:
В модуле НачислениеПремии2 имеется строка кода для расчета:
Сумма=чСумма*процентпремииВ(сотрудник);
В этом коде необходимо отнять сумму из документа НачислениеПремии, т.е.
Сумма=чСумма*процентпремииВ(сотрудник) – сумма из документа НачислениеПремии
Как правильно мне обратиться к этой сумме из документа НачислениеПремии
Заранее спасибо)
Ответ: Эксмет, спасибо)
Вот, что я попробовал, но не получилось, берет нулевое значение:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
функция ЗаКлассность(пвСотрудник)
    ЗапросЗаКласс=СоздатьОбъект("Запрос");
    ТекстЗапросаЗаКласс=
    "//{{ЗАПРОС(Доходпо маршрутам)  
    |Период с ДатаНач по ДатаДок;
    |Обрабатывать НеПомеченныеНаУдаление;   
    |Сумма=Документ.Начислениепремии.Сумма; 
    |Группировка Водитель без групп упорядочить по Водитель.Наименование;  
//  |Без итогов;
    |"//}}ЗАПРОС                                   
    ;  
       Пока 
         ЗапросЗаКласс.Группировка()=1   Цикл
        Закласс=ЗапросЗаКласс.Сумма;
        Закласс=создатьобъект("Документ.Начислениепремии,сумма");
      конеццикла;   
 конецфункции
Что-то тут не так))