arefaste/1C_Forums huggingface dataset:
Здравствуйте!
Простите, если не сюда пишу.
Бухгалтерия предприятия, редакция 3.0 (3.0.59.56)
Только начинаю познавать азы разработки, поэтому сильно не пинайте :-)

В Конфигураторе редактирую табличный макет ПФ_MXL_СчетЗаказ
Заголовок сделал: счет-договор
В заголовок хотелось бы установить дату и номер документа.
В свойствах ячейки установил Заполнение - Шаблон.
Текст:

```1c
    Счет-договор [НомерДок] от [ДатаДок]
```

Прикрепил скрин.
При формировании этого счет-договора дата и номер не устанавливаются. Просто пустое поле.

Не подскажите, как исправить ситуацию?
Что не так делаю?
Буду рад советам.
---
Из какого документа печать будет производиться? В целом, начать поиск кода можно с глобального поиска - меню "Правка/ Глобальный поиск" искать можно по имени макета. Ваша задача - найти место заполнения области "Заголовок". Когда найдёте - поставите точку останова (трассировка позволит понять как работает код, откуда получаются переменные). В (2)(5) написано примерно как присвоить значение.

p.s. Но без навыков проблематично так сходу разобраться в типовой конфе.
---
В области Заголовок следует заполнить параметры НомерДок и ДатаДок.
---
Как получаются ДатаДок и НомерДок при формировании печатной формы
---
простите за глупые вопросы :) как это сделать?
---
Примерно так

```1c
    ОбластьЗаголовок.Параметры.ДатаДок = НужноеЗначение;
```
---
самое интересное, код понимаю, но в интерфейсе разобраться не могу, куда его внести :)
Не подскажите?
---
Просто в коде поищите по имени секции, которая раньше выводилась. Там увидите как и чем ее заполняют. Добавьте вывод своей секции. Если не знаете в каком месте формируется ваш табличный документ - поищите глобальным поиском по имени макета.
---
спасибо за подсказку :)
Понимаю, что глупость, но не знаю как открыть код :)
---
ГУРУ! Не пробовал начать с изучения матчасти? Радченко там, и всё такое...
---
Вы русифицировались, а где же ваша прикольная аватарка?
---
Яка така аватарка? Не помню ))
Да я вроде и был всегда русифицирован...
---
Вот эта:
---
А зачем дразнить админов? Буду без аватарки.
---
", код понимаю," "но не знаю как открыть код"
Вот теперь уже я не все понимаю.
Вы макет как нашли?
Если печатаете счет на оплату поставщика, то вам скорее всего сюда: ПечатьТорговыхДокументов.ПечатьСчетаНаОплату
Проверьте отладчиком.
---
и не метил в гуру. В топике писал, что только начинаю. Матчасть изучаю и попутно практикуюсь.
---
Из какого документа печать будет производиться? В целом, начать поиск кода можно с глобального поиска - меню "Правка/ Глобальный поиск" искать можно по имени макета. Ваша задача - найти место заполнения области "Заголовок". Когда найдёте - поставите точку останова (трассировка позволит понять как работает код, откуда получаются переменные). В (2)(5) написано примерно как присвоить значение.

p.s. Но без навыков проблематично так сходу разобраться в типовой конфе.
Добрый день!
Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.27.151)
Платформа 1С:Предприятие 8.3 (8.3.23.1865)

После перехода на версию 3.1.27.151 в отчете Штатная расстановка стала выходить группировка с пустой Организацией с закрытыми позициями штатного расписания разных организаций. Кто-нибудь сталкивался с таким, как это можно исправить, чтобы эти позиции не выходили в отчет?
---
нашел причину.
В ОбщемМодуле УправлениеШтатнымРасписанием в процедуре ЗапросВТШтатноеРасписание изменилось соединение.
Было:

```1c
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияИспользованияШтатногоРасписания КАК РегистрСведенийИсторияИспользованияШтатногоРасписания
```

Стало:

```1c
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияИспользованияШтатногоРасписания КАК РегистрСведенийИсторияИспользованияШтатногоРасписания
```

Вернул на ВНУТРЕННЕЕ и закрытые позиции ушли.
---
неужто в отчете нет доступа к "фильтрам": параметрам и отборам?
---
нашел причину.
В ОбщемМодуле УправлениеШтатнымРасписанием в процедуре ЗапросВТШтатноеРасписание изменилось соединение.
Было:

```1c
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияИспользованияШтатногоРасписания КАК РегистрСведенийИсторияИспользованияШтатногоРасписания
```

Стало:

```1c
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияИспользованияШтатногоРасписания КАК РегистрСведенийИсторияИспользованияШтатногоРасписания
```

Вернул на ВНУТРЕННЕЕ и закрытые позиции ушли.
---
Спасибо
Такой вопрос, Есть документ "Начальная штатная расстановка", там нет реквизита "Руководитель". А как его получить из сведений об организации?

В БП3.0 есть общий модуль ОтветственныеЛицаБП, а ЗУПе такого нет.
---
```1c
    Сведения = Новый СписокЗначений;
    Сведения.Добавить(", "ФИОРук");
    Сведения.Добавить(", "ФИОБух");
    ЗарплатаКадрыРасширенный.ПолучитьСведенияОбОрганизации(Организация, ДатаПодписи, Сведения)
```

просмотр кода функции вносит ясность
---
так он там и не нужен.
---
Ну да, спасибо за помощь!

На самом деле есть функция РегламентированнаяОтчетностьВызовСервера.ПолучитьСведенияОбОрганизации(Выборка.Организация, Выборка.Период, Сведения) где можно получить сведения о руководителе.
---
это производная от ЗарплатаКадрыРасширенный.ПолучитьСведенияОбОрганизации
---
```1c
    Сведения = Новый СписокЗначений;
    Сведения.Добавить(", "ФИОРук");
    Сведения.Добавить(", "ФИОБух");
    ЗарплатаКадрыРасширенный.ПолучитьСведенияОбОрганизации(Организация, ДатаПодписи, Сведения)
```

просмотр кода функции вносит ясность
---
[IS-QUOTE][/QUOTE[B]][/B]
---
уу = ПодписиДокументов.ОтветственныеЛицаОрганизации(Организация, "Руководитель", ТекущаяДата())
Всем доброго дня!
Требуется решить такую задачу - есть 1000 логинов и паролей, требуется под каждым зайти в 1С, через 10 минуть закрыть программу и так перебрать всю 1000.
Как можно это реализовать?
---
```1c
    &НаКлиенте
    Процедура ЗапуститьКлиентОтПользователя()

    СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();

    ПараметрыЗапуска = " ENTERPRISE";
    ПараметрыЗапуска = ПараметрыЗапуска + " /IBConnectionString"" + СтрЗаменить(СтрокаСоединения, "", """) + "";
    ПараметрыЗапуска = ПараметрыЗапуска + " /N"" + ИмяПользователяИнфобазы + "";
    ПараметрыЗапуска = ПараметрыЗапуска + " /P"" + ПарольПользователяИнфобазы + "";
    ПараметрыЗапуска = ПараметрыЗапуска + " /WA-";
    ПараметрыЗапуска = ПараметрыЗапуска + " /ClearCache";
    ПараметрыЗапуска = ПараметрыЗапуска + " /AppAutoCheckMode";

    СтрокаЗапуска = "" + КаталогПрограммы() + "1cv8c.exe" " + ПараметрыЗапуска;
    ЗапуститьПриложение(СтрокаЗапуска);
```

в самой программе 1с при запуске установить Обработчик ожидания, закрывать через 10 мин
https://infostart.ru/1c/articles/1503370/

Это делать в Модуле управляемого приложения (встать на корень конфигурации и правой кнопкой)
https://forum.infostart.ru/forum9/topic230818/#message2341734
---
```1c
    &НаКлиенте
    Процедура ЗапуститьКлиентОтПользователя()

    СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();

    ПараметрыЗапуска = " ENTERPRISE";
    ПараметрыЗапуска = ПараметрыЗапуска + " /IBConnectionString"" + СтрЗаменить(СтрокаСоединения, "", """) + "";
    ПараметрыЗапуска = ПараметрыЗапуска + " /N"" + ИмяПользователяИнфобазы + "";
    ПараметрыЗапуска = ПараметрыЗапуска + " /P"" + ПарольПользователяИнфобазы + "";
    ПараметрыЗапуска = ПараметрыЗапуска + " /WA-";
    ПараметрыЗапуска = ПараметрыЗапуска + " /ClearCache";
    ПараметрыЗапуска = ПараметрыЗапуска + " /AppAutoCheckMode";

    СтрокаЗапуска = "" + КаталогПрограммы() + "1cv8c.exe" " + ПараметрыЗапуска;
    ЗапуститьПриложение(СтрокаЗапуска);
```

в самой программе 1с при запуске установить Обработчик ожидания, закрывать через 10 мин
https://infostart.ru/1c/articles/1503370/

Это делать в Модуле управляемого приложения (встать на корень конфигурации и правой кнопкой)
https://forum.infostart.ru/forum9/topic230818/#message2341734
---
Есть такое подозрение, что циклом.
---
Смотрите в ЗавершитьРаботуСистемы 3 параметр - в параметрах запуска можно указывать логин/пароль пользователя.

Соответственно запускаем под первым, через 10 минут получаем логин/пароль второго и вызываем ЗавершитьРаботуСистемы(Ложь, Истина, "/N "Иванов И.И." /P "123456789""), подставляя нужный логин/пароль. Далее третьего и т.д.

Если нужно запускать параллельно, а не последовательно, можно примерно то же самое, но с модификацией алгоритма получения следующего логина/пароля
Существует форма документа с реквизитом, который указывает на тип документа. Например (А,Б,С). И есть реквизит который является ссылкой на документ2, нужно при создании из этой формы нового документа2 заполнять некоторые реквизиты в зависимости от типа (А,Б,С). Надеюсь, что объяснил понятно. Каким образом это может быть реализовано?
---
Может подойдет такой вариант?

1. Создадим метод в модуле объекта документа для создания и заполнения нового документа2:

// Метод для создания и заполнения нового документа2
Процедура СоздатьИЗаполнитьДокумент2() Экспорт
    // Создание нового документа2
    НовыйДокумент2 = Документы.Документ2.СоздатьДокумент();

    // Заполнение реквизитов в зависимости от типа документа
    Если ЭтотОбъект.ТипДокумента = "А" Тогда
        НовыйДокумент2.Реквизит1 = "Значение1";
        НовыйДокумент2.Реквизит2 = "Значение2";
    ИначеЕсли ЭтотОбъект.ТипДокумента = "Б" Тогда
        НовыйДокумент2.Реквизит1 = "Значение3";
        НовыйДокумент2.Реквизит2 = "Значение4";
    ИначеЕсли ЭтотОбъект.ТипДокумента = "С" Тогда
        НовыйДокумент2.Реквизит1 = "Значение5";
        НовыйДокумент2.Реквизит2 = "Значение6";
    КонецЕсли;

    // Запись нового документа2
    НовыйДокумент2.Записать();

    // Заполнение ссылки на новый документ2 в текущем документе
    ЭтотОбъект.СсылкаНаДокумент2 = НовыйДокумент2.Ссылка;
КонецПроцедуры

2. Вызовем этот метод в нужный момент, например, в событии перед записью документа:

// Подписка на событие перед записью документа
Процедура ПередЗаписью(Отказ, РежимЗаписи) Экспорт
    // Проверка, что документ создается
    Если ЭтоНовый() Тогда
        // Вызов метода для создания и заполнения нового документа2
        СоздатьИЗаполнитьДокумент2();
    КонецЕсли;
КонецПроцедуры
---
Может подойдет такой вариант?

1. Создадим метод в модуле объекта документа для создания и заполнения нового документа2:

// Метод для создания и заполнения нового документа2
Процедура СоздатьИЗаполнитьДокумент2() Экспорт
    // Создание нового документа2
    НовыйДокумент2 = Документы.Документ2.СоздатьДокумент();

    // Заполнение реквизитов в зависимости от типа документа
    Если ЭтотОбъект.ТипДокумента = "А" Тогда
        НовыйДокумент2.Реквизит1 = "Значение1";
        НовыйДокумент2.Реквизит2 = "Значение2";
    ИначеЕсли ЭтотОбъект.ТипДокумента = "Б" Тогда
        НовыйДокумент2.Реквизит1 = "Значение3";
        НовыйДокумент2.Реквизит2 = "Значение4";
    ИначеЕсли ЭтотОбъект.ТипДокумента = "С" Тогда
        НовыйДокумент2.Реквизит1 = "Значение5";
        НовыйДокумент2.Реквизит2 = "Значение6";
    КонецЕсли;

    // Запись нового документа2
    НовыйДокумент2.Записать();

    // Заполнение ссылки на новый документ2 в текущем документе
    ЭтотОбъект.СсылкаНаДокумент2 = НовыйДокумент2.Ссылка;
КонецПроцедуры

2. Вызовем этот метод в нужный момент, например, в событии перед записью документа:

// Подписка на событие перед записью документа
Процедура ПередЗаписью(Отказ, РежимЗаписи) Экспорт
    // Проверка, что документ создается
    Если ЭтоНовый() Тогда
        // Вызов метода для создания и заполнения нового документа2
        СоздатьИЗаполнитьДокумент2();
    КонецЕсли;
КонецПроцедуры
УТ11.5.17 1С 8.3.24
Слетела настройка ПФ, которая формируется в ЭДО, получается в колонке "Код" должен выводиться артикул, но тянется другой реквизит, где это нужно настроить ? В какую сторону копать ?
---
Как вариант, можно посмотреть в следующих местах.

1. В общем модуле, отвечающем за формирование печатной формы проверить код, который заполняет колонку "Код" и убедиться, что там используется правильный реквизит (артикул).

2. В конфигураторе в объекте, который формирует документ для ЭДО проверить, что реквизит "Артикул" правильно заполнен и что именно этот реквизит используется для вывода в печатной форме.

3. В Конфигураторе в модуле обмена с ЭДО проверьте, какие реквизиты передаются в файл для отправки через ЭДО. Убедитесь, что среди них есть артикул и что он заполняется корректно.
---
Как вариант, можно посмотреть в следующих местах.

1. В общем модуле, отвечающем за формирование печатной формы проверить код, который заполняет колонку "Код" и убедиться, что там используется правильный реквизит (артикул).

2. В конфигураторе в объекте, который формирует документ для ЭДО проверить, что реквизит "Артикул" правильно заполнен и что именно этот реквизит используется для вывода в печатной форме.

3. В Конфигураторе в модуле обмена с ЭДО проверьте, какие реквизиты передаются в файл для отправки через ЭДО. Убедитесь, что среди них есть артикул и что он заполняется корректно.
Нужна помощь знающих, кто знает природу такого эффекта платформы.
Почему такая сильная просадка при вызове процедур и функций? В параметрах передаются наборы движений, логично, что большое количество записей влияет на передачу данных. И если бы это было управляемое приложение, и передача данных с клиента на сервер - было бы понятно. Но это обычное приложение, сервер-сервер. Моих знаний этого режима работы платформы недостаточно, прошу объяснения от матерых специалистов, которые обычное приложение хорошо знают.

Свойства общего модуля:
Сервер, Привилегированный, Вызов сервера, Повторное использование - не использовать.

Источник вызова - модуль объекта документа, процедура обработки проведения
---
И если бы это было управляемое приложение, и передача данных с клиента на сервер - было бы понятно.
Тут как раз ровно наоборот. Обработчик проведения в модуле объекта в обычном приложении выполняется в Толстом клиенте. Соответственно при вызове Сервера происходит передача с клиента на сервер.

PS. Если посмотреть модули объекта типовых, то там скорее всего будет такой код:
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

Вот как раз ТолстыйКлиентОбычноеПриложение это режим работы в обычном приложении.
---
И если бы это было управляемое приложение, и передача данных с клиента на сервер - было бы понятно.
Тут как раз ровно наоборот. Обработчик проведения в модуле объекта в обычном приложении выполняется в Толстом клиенте. Соответственно при вызове Сервера происходит передача с клиента на сервер.

PS. Если посмотреть модули объекта типовых, то там скорее всего будет такой код:
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

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

Есть отчет. В нем есть параметр Период, дату начала которого я хочу устанавливать каждый раз сегодняшнюю.

Я поменял в Параметрах значение на Сегодня - не помогло.

Я пробовал код

```1c
    ПараметрСКД = Этаформа.Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ПериодОтчета");
    ПараметрСКД.Значение.ДатаНачала = ТекущаяДата();
```

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

Я пробовал такой код

```1c
    Настройки = Этаформа.Отчет.КомпоновщикНастроек.Настройки;
    ДатаНач = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода"));
    ДатаНач.Использование = Истина;
    ДатаНач.Значение = ТекущаяДата();
```

Не помогло. Ошибка при открытии "значение не является значением объектного типа"

Запускаю при открытии Формы.

Так все-таки, как установить значение Начала Периода на произвольную?

Спасибо.
---
У меня получилось совместить пример их Хрусталевой (в чистом виде он не заработал, не было указанных свойств у периода) и примером из интернета. Получилось так

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Параметры.СформироватьПриОткрытии = Истина;
    КонецПроцедуры

    &НаСервере
    Процедура ПередЗагрузкойПользовательскихНастроекНаСервере(Настройки, ИспользуютсяСтандартныеНастройки)
    Настройки.Элементы[0].Значение.Вариант =ВариантСтандартногоПериода.ПроизвольныйПериод;
    Настройки.Элементы[0].Значение.ДатаНачала = ТекущаяДата();
    Настройки.Элементы[0].Значение.ДатаОкончания = ТекущаяДата();

    КонецПроцедуры
```
---
Я делал так

```1c
    НастройкиНовые = КомпоновщикНастроек.ПолучитьНастройки();
    НастройкиНовые.ПараметрыДанных.УстановитьЗначениеПараметра("ПериодДаты", ПериодПередача);
```
---
У меня получилось совместить пример их Хрусталевой (в чистом виде он не заработал, не было указанных свойств у периода) и примером из интернета. Получилось так

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Параметры.СформироватьПриОткрытии = Истина;
    КонецПроцедуры

    &НаСервере
    Процедура ПередЗагрузкойПользовательскихНастроекНаСервере(Настройки, ИспользуютсяСтандартныеНастройки)
    Настройки.Элементы[0].Значение.Вариант =ВариантСтандартногоПериода.ПроизвольныйПериод;
    Настройки.Элементы[0].Значение.ДатаНачала = ТекущаяДата();
    Настройки.Элементы[0].Значение.ДатаОкончания = ТекущаяДата();

    КонецПроцедуры
```
Здравствуйте!

Появилась следующая задача: необходимо в динамическом списке выводить только те документы ("Документ1"), табличная часть ("Сотрудники") которых содержит строку, попадающую сразу под два условия
Документ1.Сотрудники.Пользователь = &Пользователь И Документ1.Сотрудники.Роль = &Роль.
Снизу написан простенький запрос, который, к сожалению, проверяет условия не по одной строке, а сразу по всем (если хоть в одном строке Пользователь = &Пользователь и если хоть в одной строке Роль = &Роль).
Подскажите пожалуйста, что можно сделать в этом случае?

  "ВЫБРАТЬ
  | Документ1.Сотрудники.(
  | Ссылка,
  | НомерСтроки,
  | Пользователь,
  | Роль
  | )
  |ИЗ
  | Документ.Документ1 КАК Документ1
  |ГДЕ
  | Документ1.Сотрудники.Пользователь = &Пользователь
  | И Документ1.Сотрудники.Роль = &Роль";
---
В поля надо выбрать табличную часть А у Вас сейчас документ
---
"ВЫБРАТЬ
| Документ1.Ссылка
|ИЗ
| Документ.Документ1 КАК Документ1
|ГДЕ
|Истина В (Выбрать Первые 1 Истина Из Документ.Документ1.Сотрудники КАК ТЧ
|ГДЕ
| ТЧ.Пользователь = &Пользователь
| И ТЧ.Роль = &Роль
| И ТЧ.Ссылка = Документ1.Ссылка)";
---
Спасибо вам! Безусловно, вы верно подсказали)

Вот какой запрос я написал на основе вашего совета:

ВЫБРАТЬ
 Документ1.Ссылка
ИЗ
 Документ.Документ1 КАК Документ1
  ЛЕВОЕ СОЕДИНЕНИЕ Документ.Документ1.Сотрудники КАК Документ1Сотрудники
  ПО (Документ1Сотрудники.Ссылка = Документ1.Сотрудники.Ссылка)
ГДЕ
 Документ1Сотрудники.Пользователь = &Пользователь
 И Документ1Сотрудники.Роль = &Роль
---
В поля надо выбрать табличную часть А у Вас сейчас документ
---
Спасибо вам! Безусловно, вы верно подсказали)

Вот какой запрос я написал на основе вашего совета:

ВЫБРАТЬ
 Документ1.Ссылка
ИЗ
 Документ.Документ1 КАК Документ1
  ЛЕВОЕ СОЕДИНЕНИЕ Документ.Документ1.Сотрудники КАК Документ1Сотрудники
  ПО (Документ1Сотрудники.Ссылка = Документ1.Сотрудники.Ссылка)
ГДЕ
 Документ1Сотрудники.Пользователь = &Пользователь
 И Документ1Сотрудники.Роль = &Роль
---
В качестве параметра динамического списка лучше использовать заранее подготовленный массив сотрудников.
---
"ВЫБРАТЬ
| Документ1.Ссылка
|ИЗ
| Документ.Документ1 КАК Документ1
|ГДЕ
|Истина В (Выбрать Первые 1 Истина Из Документ.Документ1.Сотрудники КАК ТЧ
|ГДЕ
| ТЧ.Пользователь = &Пользователь
| И ТЧ.Роль = &Роль
| И ТЧ.Ссылка = Документ1.Ссылка)";
---
Спасибо вам! Помогло)
Создал диапазон в дополнительных реквизитах:
возьмем пример значений:

21-30
31-40
41-50
и тд.

Мне нужно запросом проверить попадает ли мое значение в диапазон. Например 25, попадает в диапазон 21-30, да.

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

Не хочется создавать 2 реквизита (минимум, максимум), все в рамках одного доп. реквизита в виде диапазона.

Примерно есть понимание как это можно было бы программно определить и проверить. Но вот в рамках запроса я не могу придумать подходящее решение.

примерное условие запроса

```1c
    ГДЕ
    Значение >= ДопРеквизит.Значение и Значение <= ДопРеквизит.Значение
```
---
Можно использовать весовой коэффициент Значения. С помощью него пронумеровать диапазоны. Придумать выражение для вычисления номера диапазона. Примерно так:

```1c
    ГДЕ
    ЦЕЛ((Значение - 1) / 10) = ДопРеквизит.Значение.Вес
```
---
Можно использовать весовой коэффициент Значения. С помощью него пронумеровать диапазоны. Придумать выражение для вычисления номера диапазона. Примерно так:

```1c
    ГДЕ
    ЦЕЛ((Значение - 1) / 10) = ДопРеквизит.Значение.Вес
```
---
попробую такой вариант
Добрый день. Столкнулся с проблемой загрузки файла эксель в 1С. Выдает ошибку, что файл занят другим процессом. Закрыл эксель у всех пользователей, ошибка осталась, перезагрузил сервер - ошибка осталась, отключил автозапуск у всех служб и еще раз перезагрузил сервер - ошибка осталась. Подскажите, пожалуйста, может кто сталкивался, где можно найти процесс, которым этот файл может быть занят? В 1с загрузил копию файла, но интересно теперь найти, каким процессом оригинал занят.
---
Вроде ж было в винде в консоли на сервере что-то типа "Открытые файлы в общих папках"
---
Возможно вы открываете файл в 1С а закрыть забываете. Пришлите процедуру работы с эксель.
---
сразу после перезапуска пробовал переименовать файл - не дает.
---
Вроде ж было в винде в консоли на сервере что-то типа "Открытые файлы в общих папках"
---
Пришлите процедуру работы с эксель. через табличный документ читаю, ничего
(4) спасибо