Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Права пользователей при работе, используя сервер ms sql 2008r2 - sa ?

1С:Предприятие 8.3.Руководство администратора. Номер издания 83.003.05 Дата выхода 29 мая 2013 г.
Пользователь базы данных: имя пользователя сервера баз данных, от лица которого
будет осуществляться доступ к базе данных. Существенно, чтобы указанный пользователь
был либо администратором сервера баз данных (sa), либо владельцем базы данных (если
она уже существует), для того чтобы в дальнейшем беспрепятственно модифицировать
структуру выбранной базы данных. В последнем случае этот пользователь должен иметь
доступ на чтение к базе данных master и полный доступ к базе данных tempdb. Кроме
перечисленного, указанный пользователь должен быть членом фиксированной серверной
роли processadmin или sysadmin.


1С:Предприятие 8.2.Руководство администратора.
Пользователь, от имени которого сервер 1С Предприятие осуществляет доступ к MS SQL Server
должен быть членом фиксированной серверной роли processadmin или sysadmin.


Для работы пользователей должно хватить роли базы данных db_owner
и доступ на чтение к базе данных master и полный доступ к базе данных tempdb.

Для работы администратора сервера 1С Предприятия нужны серверные роли public + dbcreator
и для создания бекапов на MS SQL Server, - серверная роль diskadmin

Зачем фирма 1С рекомендует давать права sysadmin?
В каком случае они нужны, что не хватает тех прав, которые я написал выше?
Роли уровня сервера
Роли уровня базы данных
Ответ: trew,

Такой ссылки нет, и зачем она вам?
processadmin нужен что бы килять процессы на SQL из консоли сервера 1С и все.
Вопрос: Ошибка при печати в Word на SQL базе

Подскажите как правильно печатать в Word при клиент-серверном варианте базы из внешней обработки?

В Файловом варианте работает так:
Код:
&НаКлиенте
Процедура Команда1(Команда)
       
    Команда1НаСервере();
   
КонецПроцедуры

&НаСервере
Процедура Команда1НаСервере()
   
Макет = ВыбратьМакет();
Замена = Макет.Content.Find;
Замена.Execute("[ФИО абонента]", , , , , , , , , "ФИО", 2);
Макет.Activate();
Макет.Application.Visible = 1;

КонецПроцедуры

&НаСервере
Функция ВыбратьМакет()
   
    Обработка = РеквизитФормыВЗначение("Объект");
    Макет = Обработка.ПолучитьМакет("Макет").Получить(); //Например: "Макет"
    Возврат Макет;
   
КонецФункции
Макет - соотв. ActiveDocument, MS Word.

Отладку могу делать только на файловой копии скульной базы. Запустить отладку на сервере не могу (нет доступа).

Этот же код на скульной базе вылетает с ошибкой...
Ответ:
Вылетает ранее:
{ВнешняяОбработка.....}: Ошибка при вызове метода контекста (Получить)

Есть рабочий пример кода?)
Вопрос: 1С Сервер и MS SQL

Добрый день.

1с 8.3
Будут три сервера на разных ПК.
1) RDP
2) 1c Server
3) SQL Server

SQL сервер установлен, правила для брандмауэра для порта созданы, создан пользователь 1с с авторизацией средствами SQL сервера.
Протокол TCP IP в настройках сетевого подключения MS SQL разрешен.

1с сервер тоже настроен, находится физически на другой машине
На нем для тестирования работы связки 1с сервера + ms sql поставлена платформа.

Обнаружил странную вещь.
При попытке подключения к базе выдается сообщение об ошибке при обращении SQL серверу, возможно не установлен microsoft sql server native client.

Когда я раньше разворачивал похожую инраструктуру, на сервер 1с был версии 7.1 на отдельной машине, на которой он устанавливался microsoft sql server native client не требовался. Все работало без него.

Я установил microsoft sql server native client и 1с сервер получил доступ данным на SQL сервере.

Вопрос...почему так? Можно ли без установки microsoft sql server native client на отдельном компе, на котором установлен 1C 8.3 сервер добиться работы 1с сервера? Или...ошибка в настройках?
Ответ: а что во фразе "При попытке подключения к базе выдается сообщение об ошибке при обращении SQL серверу, возможно не установлен microsoft sql server native client" не понятно?
Вопрос: Сохранение табличного документа в PDF на сервере

Доброго времени суток.
Из синтакс-помощника непонятно, предусмотрен ли сабж, об ограничениях и о том, что д.б. установлено, там ничего не сказано:
-----------------------------------------------------------

ТабличныйДокумент (SpreadsheetDocument)
Записать (Write)
Синтаксис:

Записать(<ИмяФайла>, <ТипФайлаТаблицы>)
Параметры:

<ИмяФайла> (обязательный)

Тип: Строка.
Имя файла, в котором сохраняется табличный документ.
<ТипФайлаТаблицы> (необязательный)

Тип: ТипФайлаТабличногоДокумента.
Формат, в котором будет сохранен табличный документ.
Значение по умолчанию: MXL
Описание:

Записывает табличный документ в файл.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Примечание:

При работе на сервере, веб клиенте или через внешнее соединение нет возможности сохранять в формате XLS95.
Не поддерживается сохранение в PDF картинок типа Метафайл.
При работе на веб-клиенте вызов метода выполняет обращение к серверу.
--------------------------------------------

А де-факто при записи ТД в формате PDF в фоновом задании генерируется ошибка "Неверный путь к файлу c:\1.pdf". В форматах XLS, XLSX и в родном MXL запись проходит нормально.

Подскажите, плз, что тут нужно и можно сделать.
Ответ: В качестве бреда, может быть на сервере, где установлен Сервер Приложения нет софта ассоциированного с .PDF, и типа ОС отфутболивает по своим каким-нибудь причинам? :)
Вопрос: Возможно ли внедрение УТ11 в крупной организации с жесткими требованиями к скорости работы

Добрый день! Перед нами стоит задача замены ТиС 8 на УТ11 в крупной организации. Организация занимается оптовой и розничной торговлей продуктами питания, есть своя сеть розничных магазинов. ТиС 8 очень сильно переработана под особенности бизнес процессов. В целом работает стабильно и быстро. В оптовой базе одновременно работают от 60 - 150 человек, в день проходит около 1000 документов. Очень важно обеспечить надлежащую скорость работы базы!!! Сервер для развертывания достаточно мощный: промышленный ssd диск для системы, винты также шустрые, 24 ядра, 64Гб ОЗУ. Естественно планируем разворачивать клиент-серверный вариант на MS SQL. При доработке ТиС 8 бились за секунды для ускорения работы. Имеем право остановить рабочую базу не более чем на 30 мин в рабочий день. Подскажите реально ли в такой компании внедрить УТ11 (привлекает богатые возможности конфигурации) или рассматривать УТ10, или еще что-то? Заранее спасибо.
Ответ: Еще вопрос.
Если вместо УТ11 использовать 1С-ERP-2, то насколько (в сравнении с УТ11) должен быть мощнее сервер?
Вопрос: УПП.. Работа на сервере терминалов в разных часовых поясах.

На данный момент есть многолетняя база УПП 1.3(сильно допиленная), работающая на сервере терминалов. Часть сотрудников работают в других часовых поясах. На сколько УПП 1.3 готово к работе в разных часовых поясах? Поделеитесь опытом.
Ответ: () Это никак не зависит от часового пояса. От слова "совсем".
Вопрос: v7: работа с word через ole

Всех приветствую. Надо найти в абзаце ворда слово, от него выделить до начала абзаца и заменить текст.
Слово нахожу, его выделяю, дальше затык, не могу передать параметры.
Если нажимать кнопками, контрол+шифт+стрелкаВверх,
в макросе: Selection.MoveUp Unit:=wdParagraph, :=1, Extend:=wdExtend

Word = СоздатьОбъект("Word.Application");
Word.Visible = 1; 
Word.ActiveDocument.Select();
Word.Selection.Find.Text = "тест";
Если Word.Selection.Find.Execute() <> 0 Тогда
Word.Selection.ExtendMode = 1;// указываем на выделение текста

Word.Selection.MoveUp();  // сама команда

Иначе
    Предупреждение("ERROR> ", 2);
КонецЕсли;

Судя по макросу, параметр Extend:=wdExtend я вроде как указал, а вот как остальные (Unit и Count) - затык.
пробовал типа Word.Selection.MoveUp(1, 1, 1); тоже облом((

может, кто сталкивался, поделитесь. В интернете ничего не нашел(((
Ответ: О! допинал))), мало ли, кому сгодится
        Word.ActiveDocument.Select();
        Word.Selection.Find.Text = СловоВхода;
        Если Word.Selection.Find.Execute() <> 0 Тогда  // нашли

            Word.Selection.ExtendMode = 1;
            Word.Selection.MoveUp(4); 
ну и далее замена...
парметр нашел на
Вопрос: Можно ли из 1С распечатать макет WORD, не имея его на сервере?

День добрый, собственно вопрос в теме. Юзеры работают по рдп на сервере, там нет word"а. Могу ли я какими-нибудь хитрыми способами таки формировать макет этот и хотя бы сохранять его, раз уж открытие не возможно!?
Ответ:
печалька
Вопрос: 1C (клиент-сервер) и Word

Платформа 8.3.6.2014. Конфигурация УТ 11.1.10.131. У документа есть печатная форма, макет которой имеет тип Active document (файл Word). Поскольку это печатная форма, то все телодвижения происходят в модуле менеджера, НО получить такой макет мы можем только на клиенте.

Макет = ПолучитьМакет("Макет");
Word = Макет.Получить();

На второй строке печать вылетает с ошибкой. Как это обойти, учитывая, что печатная форма должна формироваться по кнопке Печать.
Ответ: Разобрался. Если есть необходимость формировать печатные формы в Word или Open Office по фен-шую, то есть по кнопке Печать, как и обычные формы, то нужно в модуле менеджера в процедуре ДобавитьКомандыПечати указать, что форма начинает формироваться не в менеджере, а в общем модуле, который работает на клиенте. Например,

КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Обработчик = "ОбщийМодульКлиент.СформироватьПечатнуюФормуMSWord";
КомандаПечати.МенеджерПечати = "";
КомандаПечати.Идентификатор = "ФормаMSWord";
КомандаПечати.Представление = "Форма (MS Word)";

А дальше можно у же обращаться к процедурам и функциям менеджера для, например, получения данных.
Вопрос: отчет по сотрудникам с фото в word

Нужно создать отчет, который будет выводиться в word. выводить нужно кадровую информацию и фото сотрудника, т.е. фото, под ним кадровая информация. фото у меня получилось вывести, а вот инфу под ним нет.
Ответ:
номерПП  = 1; списокСотр = Неопределено;
    если ТипЗнч(работник) = тип("СправочникСсылка.СотрудникиОрганизаций") тогда
        списокСотр = новый СписокЗначений;
        списокСотр.Добавить(работник);
    иначе
        списокСотр = работник;
    КонецЕсли;
    если списокСотр<> Неопределено  тогда
            // Создание COM 

            Word1C = Новый COMОбъект("Word.Application"); 
            // Установим видимости объекта 

            Word1C.Visible = Истина; 
            // Добавим документ в приложение 

            Word1C.Documents.Add(); 
            // Придаем объекту статус активности 

            ТекущийДокумент = Word1C.ActiveDocument(); 
            ТекущийДокумент.Paragraphs(1).Range.InsertAfter("ПРИЕМ НА РАБОТУ нового сотрудника"); 
            ТекущийДокумент.Paragraphs(1).Range.Font.Size = 30; 
            ТекущийДокумент.Paragraphs(1).Range.Font.Bold = -1;//активируем документ Word1C.Activate();

                            
            для каждого ТекСотрудник из списокСотр цикл
                                
                ВыборкаРезультата = получитьДанные(Тексотрудник.Значение);
                
                Если ВыборкаРезультата.Следующий() тогда
                    
                                    //выводим в первый абзац наш текст, выделяем его и делаем шрифт 30 размера 

                    ИдентификаторОбласти = "{v8 " + "!!!!!!!!!!!" + "}";
                    ТекущийДокумент.Content.Select();
                    Поиск = ТекущийДокумент.Application.Selection.Find;
                    Поиск.Text = ИдентификаторОбласти;
                    Поиск.ClearFormatting();
                    Поиск.Forward = Истина;
                    Поиск.execute();
                    Сел =  ТекущийДокумент.Application.Selection;
                    Фото = ВыборкаРезультата.ФизлицоОсновноеИзображение.Хранилище.Получить();
                    ВременныйФайлКартинки = ПолучитьИмяВременногоФайла(".JPEG");
                    Попытка
                        Фото.Записать(ВременныйФайлКартинки);
                        ЗаписьПрошла = Истина;
                    Исключение
                        ЗаписьПрошла = Ложь;
                    КонецПопытки;
                    
                    Если ЗаписьПрошла Тогда
                        ТекущийДокумент.Tables(2).cell(2,5).Range.InlineShapes.AddPicture(ВременныйФайлКартинки, False, True);
    ТекущийДокумент.tables(2).cell(2,5).range.InlineShapes(1).Width = 100;
    ТекущийДокумент.tables(2).cell(2,5).range.InlineShapes(1).Height = 130;
                        УдалитьФайлы(ВременныйФайлКартинки);
                    КонецЕсли;
                    ТекущийДокумент.Paragraphs(1).Range.InsertAfter("ПРИЕМ НА РАБОТУ нового сотрудника"); 
            ТекущийДокумент.Paragraphs(1).Range.Font.Size = 30; 
            ТекущийДокумент.Paragraphs(1).Range.Font.Bold = -1;//активируем документ Word1C.Activate();

            
                    //ТекущийДокумент.Paragraphs().Range.InsertAfter(ВыборкаРезультата.ФизлицоОсновноеИзображение); 

                    //ТекущийДокумент.Paragraphs().Range.Font.Size = 30; 

                    //ТекущийДокумент.Paragraphs().Range.Font.Bold = -1; //активируем документ Word1C.Activate();

                            
                КонецЕсли;
                        
                        
            КонецЦикла;
    КонецЕсли;