Версия для печати темы (https://pro1c.org.ua/index.php?s=17ffaca49cfe682e1a733650c1d36302&showtopic=55146)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Как при нажатии кнопки в расходной накладной программно нажать такую же кнопку в другой расходной накладной? в 1С 7.70.003 торговля склад для Украины?

Автор: ZUBR 12.11.19, 0:13

Доброй ночи! Опять возникла задача. У меня есть расходная накладная по ремонту с номером заказа. На ее форме есть кнопка Аксессуары. Если клиент, который ремонтирует у нас аппарат, хочет приобрести еще какой-то аксессуар, например, фильтр, оператор нажимает кнопку Аксессуары на расходной накладной и создается еще одна расходная накладная с реквизитами этого клиента и таким же номером заказа, как и в накладной по ремонту. Существуют две расходные накладные с одинаковым значением реквизита НомерЗаказа.
При выдаче аппарата клиенту на диалоговом окне РасходнойНакладной по ремонту нажимается кнопка Выдан. После ее нажатия заполняется поле ДатаВыд, статус меняется на Выдан и т.п.
Задача в том, чтобы кнопка Выдан программно "нажималась" также и в расходной накладной по аксессуарам с этим же номером заказа. А то ее забывают нажимать. При этом я хочу избежать перебора всех документов для поиска расходной с таким же значением реквизита НомерЗаказа. Нужно как-то "привязать" расходную по аксессуарам к расходной по ремонту. Чтобы программа заранее знала, в каком документе необходимо нажать эту же кнопку. Прошу совета, как это лучше сделать. Спасибо!

Автор: andrew76 12.11.19, 9:21

ZUBR @ Сегодня, 3:13 * ,

Доброе утро !
Посмотрите в конфигураторе,какия процедуры-обраблотчики висят на кнопках.В нужной копке допишите вызов-обрабочик нужной Вам второй процедуры.
Не видя конфигурации я могу писать только такие советы.

Автор: cos12 12.11.19, 9:55

ZUBR @ Сегодня, 1:13 * ,
сделайте запрос проверки номера заказа перед закрытием документа, и если есть дайте ошибку/предуприждение.

Автор: Pepe 12.11.19, 10:08

cos12 @ Сегодня, 10:55 * ,
Найдите следующий документ Расходная накладная с номером заказ, откройте его, поменяйте или заполните необходимые поля.
Это можно автоматизировать, добавив в процедуру Призакрытии необходимые команды или из неее вызвать процедуру обработки.

Автор: Vofka 12.11.19, 10:11

ZUBR, сделайте вторую накладную на основании первой (я уже правда не помню есть ли в 7.7 ввод на основании). Но я не вижу проблем с поиском по номеру заказа. Запрос должен нормально отыскивать нужный документ по строковому реквизиту, если по нему будет построен индекс (опять таки, я не помню, настраивается ли это в 7.7). Но я бы подумал над тем, что бы все в одну накладную вставить.

Автор: ZUBR 12.11.19, 19:51

Господа, спасибо за ответы. Есть ввод на основании, я об этом думал, но мне такой вариант не подходит. В одной накладной все делать тодже не подходит, т.к. в ней только одна табличная часть. Сделаю поиск. Просьба к вам привести пример, как запустить процедуру нажатия кнопки документа программно из другого документа. Скажем, есть кнопка с процедурой Выдать(). Когда ее нажимаешь, она выполняется в модуле формы. А вот какой должна быть команда из модуля другого документа, чтобы она выполнилась? Допустим, я по поиску нашел искомый документ с соответствующим номером заказа. Как написать строку выполнения процедуры. Например:

Расх =    СоздатьОбъект ("Документ.РасходнаяНакладная");
     Расх.ВыбратьДокументы(НачДата1,КонДата1);
Если     УсловиеПоиска    Тогда
Расх.Выдать =? ИлиКак??????????????Что здесь написать?;
КонецЕсли;
............................................

Короче, как нажать кнопку Выдать программно из другого документа?
Спасибо! С вами очень интересно icon_beer17.gif

О, меня осенило! Нужно записать
Расх.Выдать();

Правильно, нет?))) Проверю позже.

Автор: ZUBR 12.11.19, 21:59

Нет, это не работает. Пишет, что нет поля агрегатного объекта... 64000000.gif

Автор: andrew76 13.11.19, 3:04

ZUBR @ Сегодня, 0:59 * ,

Доброе утро !

Расх =    СоздатьОбъект ("Документ.РасходнаяНакладная");
     Расх.ВыбратьДокументы(НачДата1,КонДата1);
Если     УсловиеПоиска    Тогда

// попробуйте сюда вставить весь код процедуры Выдать

КонецЕсли;

Автор: Vofka 14.11.19, 10:44

Цитата(ZUBR @ 12.11.19, 19:51) *
Есть ввод на основании, я об этом думал, но мне такой вариант не подходит.

Почему, если не секрет?

Цитата(ZUBR @ 12.11.19, 19:51) *
В одной накладной все делать тодже не подходит, т.к. в ней только одна табличная часть.

А как это, в данном случае, вас ограничивает или мешает?

Автор: ZUBR 16.11.19, 20:55

Vofka @ 14.11.19, 10:44 * , докладываю. Ввод на основании - это дополнительные сложности для инженеров, которые будут работать с системой. Они будут делать ошибки и путаться. А мне потом это все исправлять, удалять, контролировать. Уж лучше пусть все будет по возможности автоматизированно. По поводу двух таблиц. Мне нужно, чтобы сумма по ремонту была отдельно и сумма сопутствующих аксессуаров отдельно. А не общая сумма. Потому что ремонт может быть на 100 баксов, а разные аксессуары еще сто. И клиент говорит потом, что поремонтировал на 200 баксов. Хотя он, возможно, купил кожаный чехол за 100 баксов. А мог и не покупать. А так будет отдельный документ на ремонт и отдельный на аксессуары и товары. Но когда Выдается ремонт, часто забывают нажать кнопку Выдано на документе по аксессуарам. Вот так вот.
Они и так путаются. А если я еще начну рассказывать про ввод на основании.... Это будет трындец.

Автор: Vofka 17.11.19, 13:48

ZUBR, я не понимаю что сложного в вводе на основании, но допустим, что это может быть для кого-то сложно (хотя мне это сложно понять, если взять во внимание, что вбивать номер заказа не сложно, а сделать ввод на основании сложно). Но ладно, пускай ввод на основании не подходит.

Во втором случае делается просто: есть товар с типом "Услуга", в которой у вас будет что-то типа "Ремонт" и товар с типом "Товар". В результате вы можете выводить в документе 2 суммы: итог по товарам с типом "Услуга" и итог по товарам с типом "Товар". В печатной форме можно это тоже обработать и вывести клиенту форму с двумя таблицами товары и услуги, что бы клиент понимал где что.

Автор: ZUBR 18.11.19, 22:19

Vofka @ Вчера, 13:48 * ,
мне єто не приходило в голову. Надо будет обмозговать. Спасибо))

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua