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

Возможно ли такой создать программно?
---
Разобрался сам. Пример создания файла.
Лист с данными заполнен наименованиями номенклатуры
Лист для заполнения с 1 по 200 строку в 1 колонке ограничение выбора из того, что заполнено на листе с данными.

```1c
    &НаКлиенте
    Процедура СоздатьExcel(Команда)

    СписокНоменклатуры = ПолучитьСписокНаСервере();

    ПриложениеExcel = Новый COMОбъект("Excel.Application");
    ПриложениеExcel.DisplayAlerts = 0;
    ПриложениеExcel.Visible = 0;
    ПриложениеExcel.SheetsInNewWorkbook = 2;

    КнигаExcel = ПриложениеExcel.Workbooks.Add();

    Лист1 = КнигаExcel.Sheets(1);
    Лист1.Name = "Для заполнения";

    Лист2 = КнигаExcel.Sheets(2);
    Лист2.Name = "Данные";

    Для А = 1 По СписокНоменклатуры.Количество() Цикл

    Лист2.Cells(А,1).Value = СписокНоменклатуры[А-1];

    КонецЦикла;

    КнигаExcel.Names.Add("Search", "=Данные!R1C1:R" + СписокНоменклатуры.Количество() + "C1");

    Для Б = 1 По 200 Цикл

    Лист1.Range("A" + Б).Validation.Add(3, , , "=Search", );

    КонецЦикла;

    Лист2.Protect("123321");

    КнигаExcel.SaveAs("\\SERVER-STR\users\a.kles\Мои документы\666.xls", -4143);

    ПриложениеExcel.Quit();

    КонецПроцедуры
```
---
пользователем без доступа в базу
Это пятничный прикол? Поясните этот момент...тоесть пользователь должен из базы создать документ не заходя в базу?
---
нет - из базы для пользователя будет этот файлик формироваться. Кем то ручками или регламентом
---
Так может сразу распишите свою идею? Например - При создании РасходнойНакладной формируется файл или каждый час формируется файл или при входе Маши Пупкиной формируется файл.....или вы даже этого еще не придумали, а может Вам нужно создать программно пустой документ и сохранить его в эсель, а потом после заполнения в экселе загрузить назад?
---
я же написал
Нужно создать файлик с листом где пользователь заполнит таблицу
В каждой колонке ограниченный список значений - список брать со второго листа. Насколько я знаю просто в экселе это делается через проверку данных.
Вопрос как это сформировать из 1с программно.
---
+ (7) гоните такого архитектора

+ (2) Пятницццо же! :)
---
да я бы и с радостью не придумывать велосипед) Запрос такой)
---
На первом значение каждой колонки ограничено значениями второго листа. Второй лист надо тоже заполнять программно из 1С? Или его значения задаются заранее в Excel?

Впрочем, это уже детали. В принципе, задача эта решаема. Например, по образцу обмена данными программ 1С с системой ГИС ЖКХ: из нее можно получить шаблон XLSX, который содержит только заголовки и формулы. Затем этот шаблон программно заполняется данными из 1С - добавляются строки и вносятся данные, после чего готовый файл можно просмотреть в Excel, внести поправки вручную (если нужно) и загрузить в ГИС.

По-моему, это очень близко к тому, что вы хотите. И как, вам от этого легче? Из режима предприятия такие штуки не делаются, тут код писать надо.
---
у вас есть пример кода? Интересует синтаксис.
Как назначить колонке программно список, который в неё может заполняться.
---
Как назначить колонке программно список, который в неё может заполняться. По-моему, вы думаете не в том направлении. Вот вам файл с примером того, о чем я говорил раньше и как это может быть сделано: на первом листе "Основные сведения" первая колонка "№ записи" может быть заполнена (в том числе программно) любыми числами. После этого на втором и третьем листах в первой колонке "№ записи лицевого счета" можно выбирать значения из списка значений первой колонки первого листа.

Как это сделано - понятия не имею, только сделано это без 1С.
---
Разобрался сам. Пример создания файла.
Лист с данными заполнен наименованиями номенклатуры
Лист для заполнения с 1 по 200 строку в 1 колонке ограничение выбора из того, что заполнено на листе с данными.

```1c
    &НаКлиенте
    Процедура СоздатьExcel(Команда)

    СписокНоменклатуры = ПолучитьСписокНаСервере();

    ПриложениеExcel = Новый COMОбъект("Excel.Application");
    ПриложениеExcel.DisplayAlerts = 0;
    ПриложениеExcel.Visible = 0;
    ПриложениеExcel.SheetsInNewWorkbook = 2;

    КнигаExcel = ПриложениеExcel.Workbooks.Add();

    Лист1 = КнигаExcel.Sheets(1);
    Лист1.Name = "Для заполнения";

    Лист2 = КнигаExcel.Sheets(2);
    Лист2.Name = "Данные";

    Для А = 1 По СписокНоменклатуры.Количество() Цикл

    Лист2.Cells(А,1).Value = СписокНоменклатуры[А-1];

    КонецЦикла;

    КнигаExcel.Names.Add("Search", "=Данные!R1C1:R" + СписокНоменклатуры.Количество() + "C1");

    Для Б = 1 По 200 Цикл

    Лист1.Range("A" + Б).Validation.Add(3, , , "=Search", );

    КонецЦикла;

    Лист2.Protect("123321");

    КнигаExcel.SaveAs("\\SERVER-STR\users\a.kles\Мои документы\666.xls", -4143);

    ПриложениеExcel.Quit();

    КонецПроцедуры
```
---
Возможно нужно создать некоторый макет в excel, который будут заполнять пользователи для последующей загрузки в 1С?
---
именно
этот макет только динамически будет формироваться с теми данными которые ему нужны как раз для его заполнения.
---
Следующий вопрос будет, как загрузить данные из Эксель в 1С?

Сделайте юзерам форму в 1С, пусть там всё и заполняют. Если Маша Пупкина знает только Эксель, это не значит, что под неё будет пилиться конфа, да ещё и таким костыльным образом.
---
ессно) Но тем же кто файлик будет формировать и отправлять на заполнение) Заполняющий не имеет и не будет иметь доступа)