&НаКлиенте
Процедура Покупка(Команда)
ОткрытьЗначение(ПокупкаНаСервере(ТекущийМагазин));
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПокупкаНаСервере(ТекущийМагазин)
лДокумент = Документы.Покупка.СоздатьДокумент();
лДокумент.Дата = ТекущаяДата();
лДокумент.Магазин = ТекущийМагазин;
лДокумент.Записать(РежимЗаписиДокумента.Запись);
Возврат лДокумент.Ссылка;
КонецФункции
Вот код, если делать по аналогии твоего кода. Но данный код не очень хорош, потому, что он создает документ и сразу записывает его. Не оставляя пользователю возможности, например передумать создавать покупку.
Я бы сделал вот так:
&НаКлиенте
Процедура Покупка(Команда)
ОткрытьФорму("Документ.Покупка.Форма.ФормаДокумента", Новый Структура("Ключ", ПредопределенноеЗначение("Документ.Покупка.ПустаяСсылка")));
КонецПроцедуры
Этот код создаст новый пустой документ покупка, без записи в БД.
Возможно имя формы у тебя называется по другому, надо посмотреть в конфигураторе и заметить в строке Документ.Покупка.Форма.ИМЯ_ФОРМЫ_КАК_В_КОНФИГУРАТОРЕ на твое имя.
Оба кода будут работать.