• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Копировать документ!

  • Автор темы Sergoon
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

Sergoon

Доброе время суток! Вопрос такой, в журнале есть функция копировать строку (F9), какая процедура вызываеться и как мне ее прописать для своей кнопки? 1С недавно колупать начал, помогите пожалуйста!!!
 
G

gorlanovmax

В модуле формы документа вставляется предопределенная процедура ВводНового(Скопирован)

Если документ введен копированием, то переменная Скопирован будет равна 1
 
S

Sergoon

Спасибо! Это я нашел, но вот что-то пишет ошибку что неизвестное имя процедуры!!! Я так тупо и пишу:
ВводНового("название переменной")! Правильно? Может мозг уже перегрелся! Завтра еще буду пробывать!
 
H

Hryv

Доброе время суток! Вопрос такой, в журнале есть функция копировать строку (F9), какая процедура вызываеться и как мне ее прописать для своей кнопки? 1С недавно колупать начал, помогите пожалуйста!!!

Не совсем понятен вопрос
Надо перехватить момент копирования или выполнить копирование при нажатии кнопки?

Чтобы создать копию документа надо сделать примерно так
На кнопку повесить (если кнопка на форме журнала)
ОткрытьФорму("Документ.Счет",,ТекущийДокумент);//Счет - это для примера, надо подставить правильный вид документа
А в самом документе поставить галочку, что он может вводиться на основании самого себя
И процедуру вставить в модуль

Код:
Процедура ВводНаОсновании(ДокОсн)
Если ДокОсн.Вид()="Счет" Тогда
РеквизитШапки1 = ДокОсн.РеквизитШапки1; // РеквизитШапки1 - тоже для примера
//Далее тоже самое для всех реквизитов шапки
//Если есть табличная часть, то
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ДокОсн.ВыгрузитьТабличнуюЧасть(ТЗ);
Док.ЗагрузитьТабличнуюЧасть(ТЗ);
КонецЕсли;
КонецПроцедуры

Если процедура ВводНаОсновании в модуле уже есть, то подправить
 
L

LxS

Код:
	Док = Документы.АнкетаЗастрахованногоЛица.НайтиПоНомеру();
Док1 = Док.Скопировать();
Описание переменной Док привел как пример.

Его можно получать, как угодно.Лишь бы на выходе была ссылка на копируемый документ.
 
H

Hryv

LxS, по вопросу не понятно о какой вермии идет речь
Мой пример для 7.7
При этом также как по [F9] откроется новый уже заполненный, но не сохраненный документ (вроде бы именно это требуется)

Как сделать в 8 версии я не в курсе
 
S

Sergoon

LxS, по вопросу не понятно о какой вермии идет речь
Мой пример для 7.7
При этом также как по [F9] откроется новый уже заполненный, но не сохраненный документ (вроде бы именно это требуется)

Как сделать в 8 версии я не в курсе

Спасибо Hryv, именно твой то пример мне и нужен, а где он???
 
L

LxS

LxS, по вопросу не понятно о какой вермии идет речь
Мой пример для 7.7
При этом также как по [F9] откроется новый уже заполненный, но не сохраненный документ (вроде бы именно это требуется)

Как сделать в 8 версии я не в курсе

Как спросили, так ответил.
Чьи это проблемы, если автору вопроса не вдомек, что 1С существует уже в 4х версиях, и все друг от друга в разной степени отличны.

По поводу моего примера, выполнится то же самое действие, что ты и сказал("вроде бы это и требуется.."), только с той разницей, что это кусок кода для восьмерки.

Как сделать в 8 версии я не в курсе
- теперь в курсе.
 
H

Hryv

- теперь в курсе.

Теперь - да! Однако, прогресс не стоит на месте, всего 2 строки


Спасибо Hryv, именно твой то пример мне и нужен, а где он???

Повтор
На кнопку повесить (если кнопка на форме журнала)
ОткрытьФорму("Документ.Счет",,ТекущийДокумент);//Счет - это для примера, надо подставить правильный вид документа
А в самом документе поставить галочку, что он может вводиться на основании самого себя
И процедуру вставить в модуль

Код:
Процедура ВводНаОсновании(ДокОсн)
Если ДокОсн.Вид()="Счет" Тогда
РеквизитШапки1 = ДокОсн.РеквизитШапки1; // РеквизитШапки1 - тоже для примера
//Далее тоже самое для всех реквизитов шапки
//Если есть табличная часть, то
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ДокОсн.ВыгрузитьТабличнуюЧасть(ТЗ);
Док.ЗагрузитьТабличнуюЧасть(ТЗ);
КонецЕсли;
КонецПроцедуры
Если процедура ВводНаОсновании в модуле уже есть, то подправить
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!