Платформа 8.3.10.2650, сервер SQL 2014, windows server 2012 R2, виртуальная машина на Hyper-V, сервер БД и сервер 1С (32 гб памяти) это разные виртуальные машины на одном сервере
Симптомы:
1. Не работает отладчик. Порты 1560-1591 открыты, отладка по протоколу TCP/IP, брендмауэр и антивирус отключены, параметр -debug выставлен. Конфигуратор при этом просто не видит предмет отладки, никаких сообщений об ошибке не выдает. Т.е. я ставлю точку останова, запускаю предприятие и программа просто не переходит в конфигуратор. При этом отладка работает в клиентских процедурах и функциях.
2. Периодически отваливаются базы данных, выдает сообщение об ошибке подключения к базе данных. Помогает переподключение самой базы, т.е. я просто удаляю базу и подключаю ее снова, на какое-то время помогает.
3. Зависает самописная база при проведении документа, причем именно на куске кода "Отказ=истина" (выяснил это экспериментальным путем, удаляя куски кода). Но на моем домашнем компе база работает как надо, ошибка явно не в коде.
Возможно конечно все эти ошибки друг с другом не связаны, но все они критичны и это на мой взгляд это именно проблема настройки сервера.
(69)Я говорю про конфигурационные файлы, папка srvinfo, когда служба не имеет доступ к этой папке целиком ее клинить начинает, то базы отвалятся, то журналы не пишутся. Я у себя на рабочем сервер убрал с диска С: эту папку, заколебался править права после применения политики безопасности, а прописывать отдельно для 1С не хотелось.
(29)Конфигурацию виртуальной сети, настройки драйверов физ. адаптеров для использования в виртуальной среде, пакет hype-v tools на виртуальных машинах.
(30)
1. Конфигурация виртуальной сети - на одной физической машине есть два виртуальных сервера, сервер баз данных и сервер платформы, они соединены внутри с помощью виртуального коммутатора
2. По настройкам сложно сказать что-то определенное, но пользователи в базы заходят и в целом проблем по соединению не наблюдается.
(31)Я так понимаю у вас не используется частная сеть между серверами, если так то надо смотреть в сторону драйвера физической карты, поддерживает они режим виртуализации, и включен ли такой режим у нее, по всем признакам у вас теряются периодические пакеты, не согласованность виртуального коммутатора и сетевой карты..
(48) Насколько часто отваливается база, может в определенные интервалы времени. Ресурсов на физ. сервере достаточно для двух машин, может есть промежутки времени, в которые гипервизор приостанавливает какую н ибудь машину. Проверьте пинги между серверами, на минут 10-20 запустите с сохранением в файл и посмотрите отваливается или нет.
(60)Вы просто могли ему оставить мало ресурсов отдали все виртуальным машинам. Если редко отваливаются, то надо и смотреть на состояние сервера в тот момент когда отвалилась база. Так не определить причину. По поводу отладки, на самом сервере 1С работает? В 1С включали разрешить отладку? Проверьте доступность по имени, подключайтесь к серверу по IP адресу в качестве теста
(61)
По ресурсам все норм, я еще раз у админа уточнил, у нас многие бизнес процессы подвисали бы без этого, а кроме 1С больше глюков с сервером нет. На самом сервере отладка тоже не работает. Может я туплю по поводу отладки на сервере - я запускаю удаленный доступ, захожу через удаленный доступ в 1с и там запускаю отладку.
(65)Если на сервере не работает, значит на косячили с параметрами запуска службы, у меня так тестовом сервере "C:\Program Files\1cv8\8.3.12.1412\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -d "C:\Program Files\1cv8\srvinfo". Когда меняете что то в параметрах обязательно службу перезапускать.
(67)Ну значит проблем не должно быть, перестартоните службу и проверьте права на папку с базами, иногда серверы затирают их применяя политики безопасности, особенно когда она находится в этой папке.
(68)
Базы находятся на отдельном виртуальном сервере, папки с базами нет.
Рестарт не помогает, я проверял уже.
В том и суть, я ведь перед созданием темы на форуме шерстил интернет неделю и вроде все должно работать, а не работает. Пишу сейчас базу как слепой котенок без отладчика.
(69)Я говорю про конфигурационные файлы, папка srvinfo, когда служба не имеет доступ к этой папке целиком ее клинить начинает, то базы отвалятся, то журналы не пишутся. Я у себя на рабочем сервер убрал с диска С: эту папку, заколебался править права после применения политики безопасности, а прописывать отдельно для 1С не хотелось.
(80)Желательно, достаточно только службу перегрузить, и проверьте в начале локальную серверную отладку, если заработает то дальше разбирайтесь. Сомневаюсь я что здесь проблема с самой 1С, что то с настройками, может сервера, может сервера 1С. Журнал ОС посмотрите может есть какие то подозрительные события.
(1) я бы попросил админа поставить все хозяйство (особо 1с-ное) без всяких виртуальных машин. Сталкивался с подобным же как у вас в п2 и п3, просто необъяснимые ошибки без видимых причин. Не стал долго разбираться, поставили на метеринский серв без виртуальной машины и все шуршит прекрасно до сих пор. По п1. уже подсказали - скорее всего брандмауэр не настроен, что то с портами.
Да, еще рекомендую 8.3.10.2667 из ветки 8.3.10, он более стабильный. А с 8.3.10.2650 как у вас какие то проблемы были помню точно. Начните с обновления релиза платформы просто
(9) А тем, что практического смысла в этом в принципе немного.
И удобства такой виртуализации не перекрывают неудобств, аналогичных тому что возникли у автора в САБЖе
(12) Это исключительно ваше личное мнение, которое не является обязательным для других. Как вы себе представляете работу сервера 1С и бд Oracle на одной виртуальной машине, например?
1. Конфигуратор запускаете на сервере 1С, или с другого компьютера?
2. sqlncli.msi на сервере 1С установлен?
3. Проверьте размер логов сервера 1С по данной базе. Если они сильно распухли то их надо почистить.
(11)
1. Конфигуратор запускаю с другого компа.
2. sqlncli.msi стоит только на сервере баз данных, на сервере 1с не стоит
3. Логи не велись, я технологический журнал только сегодня настроил
(14)
1. Если конфигуратор запускать с сервера 1С, отладка работает?
2. Обязательно надо поставить sqlncli.msi на сервер 1С.
3. Я не про тех. журнал, а про логи сервера 1С для каждой базы данных. Обычно они лежат в каталоге "C:\Program Files\1cv8\srvinfo\reg_1541\ИД_Базы\1Cv8Log". Если файл больше десятка гигобайт то стоит попробовать его либо почистить, либо удалить (если у вас нет политики учета логов).
(15)
1. Нет, не работает
2. А что это и зачем оно?
3. Как узнать ид базы? Кстати сама папка весит 46 гигов, я имею ввиду вообще вся папка по всем базам, у нас их много.
1. Если с сервера 1С отладка так же не работает, то она у вас не включена. Покажите строчку реестра где у вас прописан ключ -debug
2. С некоторых не столь отдаленных пор сервер 1С требует наличия клиентской части sql-сервера для нормальной работы. Требование появилось с многострадального релиза 8.3.9.1818. Пример ошибок при отсутствии sqlncli.msi 3. ID базы можно посмотреть в файле C:\Program Files\1cv8\srvinfo\reg_1541\1СV8Clst.lst
(23)
1. Попробуйте перенести -debug сразу после -d, до указания пути. Вроде не важно, но как-то раз я столкнулся с тем, что это решило проблему с отладкой.
3. 1СV8Clst.lst - блокнотом. Это обычный текстовый файл.
(26) Странно что оно вообще запустилось ибо ключ -d определяет директорию, которая указана после него в кавычках, ключ -debug как раз нужно выставлять перед -d
С некоторых не столь отдаленных пор сервер 1С требует наличия клиентской части sql-сервера для нормальной работы. Требование появилось с многострадального релиза 8.3.9.1818. Пример ошибок при отсутствии sqlncli.msi
Админ еще раз посмотрел, этот компонет был установлен и на сервере платформы в том числе.
Кстати, проблема в пункте 3 вполне может быть из-за возникающих взаимоблокировок на сервере 1С или сервере БД. Собственно поэтому на вашей домашней базе работает, а в продакте нет. Можете показать весь код проведения документа?
(16) Самое смешное, что сейчас проведение работает, хотя еще утром не работало, база просто висла, а вот код. Блокировки я не ставил, так как в базе будет работать только один человек.
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// 1. Получение запросом данных документа
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| СписаниеНоменклатурыНоменклатура.Номенклатура КАК Номенклатура,
| СписаниеНоменклатурыНоменклатура.Склад КАК Склад,
| СУММА(СписаниеНоменклатурыНоменклатура.Количество) КАК Количество
|ПОМЕСТИТЬ НоменклатураДокумент
|ИЗ
| Документ.СписаниеНоменклатуры.Номенклатура КАК СписаниеНоменклатурыНоменклатура
|ГДЕ
| СписаниеНоменклатурыНоменклатура.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| СписаниеНоменклатурыНоменклатура.Номенклатура,
| СписаниеНоменклатурыНоменклатура.Склад
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| НоменклатураДокумент.Номенклатура КАК Номенклатура,
| НоменклатураДокумент.Склад КАК Склад,
| НоменклатураДокумент.Количество КАК Количество
|ИЗ
| НоменклатураДокумент КАК НоменклатураДокумент";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
// 2. Формирование движений-расход регистра
Движения.РегистрХранения.Очистить();
ВыборкаНоменклатура = РезультатЗапроса.Выбрать();
Пока ВыборкаНоменклатура.Следующий() Цикл
Движение = Движения.РегистрХранения.ДобавитьРасход();
Движение.Период = Дата;
Движение.Склад = ВыборкаНоменклатура.Склад;
Движение.Номенклатура = ВыборкаНоменклатура.Номенклатура;
Движение.Количество = ВыборкаНоменклатура.Количество;
КонецЦикла;
// 3. Запись движений в БД
Движения.РегистрХранения.Записывать = Истина;
Движения.Записать();
// 4. Запрос, получающий отрицательные остатки из регистра
Запрос.Текст =
"ВЫБРАТЬ
| РегистрХраненияОстатки.Номенклатура КАК Номенклатура,
| ПРЕДСТАВЛЕНИЕССЫЛКИ(РегистрХраненияОстатки.Номенклатура) КАК НоменклатураПредставление,
| -РегистрХраненияОстатки.КоличествоОстаток КАК Дефецит
|ИЗ
| РегистрНакопления.РегистрХранения.Остатки(
| &МоментВремени,
| (Номенклатура, Склад) В
| (ВЫБРАТЬ
| НоменклатураДокумент.Номенклатура,
| НоменклатураДокумент.Склад
| ИЗ
| НоменклатураДокумент)) КАК РегистрХраненияОстатки
|ГДЕ
| РегистрХраненияОстатки.КоличествоОстаток < 0";
ГраницаКонтроля = Новый Граница(МоментВремени(), ВидГраницы.Включая);
Запрос.УстановитьПараметр("МоментВремени", ГраницаКонтроля);
РезультатЗапроса = Запрос.Выполнить();
// 5. Вывод сообщений о недостатке товаров
Если Не РезультатЗапроса.Пустой() Тогда
Отказ = Истина;
ВыборкаОшибки = РезультатЗапроса.Выбрать();
Пока ВыборкаОшибки.Следующий() Цикл
Сообщить("Товара "+ВыборкаОшибки.НоменклатураПредставление+" недостаточно в количестве "+ВыборкаОшибки.Дефецит+" шт.");
КонецЦикла;
КонецЕсли;
КонецПроцедуры
(18) Блокировки надо ставить в любом случае, даже если у вас один пользователь работает. Если у вас используются управляемые блокировки то попробуйте немного изменить код:
// 2. Формирование движений-расход регистра
Движения.РегистрХранения.Очистить();
Движения.РегистрХранения.БлокироватьДляИзменения = Истина;
ВыборкаНоменклатура = РезультатЗапроса.Выбрать();
Пока ВыборкаНоменклатура.Следующий() Цикл
Движение = Движения.РегистрХранения.ДобавитьРасход();
Движение.Период = Дата;
Движение.Склад = ВыборкаНоменклатура.Склад;
Движение.Номенклатура = ВыборкаНоменклатура.Номенклатура;
Движение.Количество = ВыборкаНоменклатура.Количество;
КонецЦикла;
(18)Зачем записывать движения до проверки остатков? Почему не проверить остатки до записи? Получается ведь что сначала запишется, а в случае нехватки товара транзакция отменится, в чем смысл?
(21) Это "новая методика проведения". Рекомендуется к использованию в тех случаях, когда для записи данных в регистр нам не требуется читать данные этого же самого регистра.
"Симптомы:
1. Не работает отладчик. Порты 1560-1591 открыты, отладка по протоколу TCP/IP, брендмауэр и антивирус отключены, параметр -debug выставлен. Конфигуратор при этом просто не видит предмет отладки, никаких сообщений об ошибке не выдает. Т.е. я ставлю точку останова, запускаю предприятие и программа просто не переходит в конфигуратор. При этом отладка работает в клиентских процедурах и функциях. "
Формы обычные или управляемые?
Если в меню "Отладка" - "Подключение" - "Автоматическое подключение" - "Автоматическое подключение" поставить галки, то например, фоновые задания ловит отладчик в серверных процедурах /функциях?
И, вообще, в поле "Подключенный предметы отладки" есть подключение с типом "Сервер"?
(44)
Попробуйте в меню "Отладка" - "Подключение" поставить галку "Искать предметы отладки на удаленном компьютере". И указать компьютер, на котором запущен сеанс информационной базы, отладку которого вы хотите произвести. Насколько я знаю можно указывать имя компьютера в сети или его ip.
(58)
"Сервер" отсутствует - это плохо, но "Тонкий клиент" же есть, это хорошо ))
Попробуйте в сеансе информационной базе запустить "Сервис" - "Параметры" и указать "Сервер отладки".
(58) My Webpage Читали данный топик.? Беглый просмотр показал, что вроде проблема схожа с Вашей и автор той темы все же нашёл решение. Возможно Вам тоже пригодится.
(74)
Читал, там в основном брандмауэр, а у меня он отключен и на серваке и клиенткой машине. debug прописан, название базы в верхнем регистре, вместо имени сервака ип-адрес, все это пробовал
По поводу отладки на вирт. серверах: на клиенте, где работают пользователи, то-же бранд выключен, если нет, надо добавить правило для приложения 1cv8.exe (любые порты) (пройденный этап) для входящих подкл.!
(62) Вот скрины, первый это клиентская машина, второй это сервер. Поверьте, если бы дело было банально в брандмауэре или антивирусе, то я бы и тему на форуме здесь не создавал
Попробуй следующее:
"Администрирование серверов 1С Предприятия"
Рабочие серверы
Сервер
Требования назначения функциональности
Нужно убедиться что нет всякого хлама ! По-минимуму должно быть: Сервис лицензирования - назначать - для всех
Клиентское соединение с ИБ - назначать - для всех
Правый клик на CLUSTER1 - Применить назначения функциональности (полное)
Обязательно применить назначения функциональности (полное) - иногда настройки не прменяются хотя выставлены
Имя информационной базы и название сервера на клиентском пк должны совпадать с зарегистрированной базой в консоли администрирование сервера 1с с учетом регистра.
Т.е. если у вас имя сервера 1с к примеру Server1C и зарегистрирована на нем база Base1C, то на клиентском пк в 1с надо добавить Srvr="Server1C";Ref="Base1C";. Добавив к примеру такую базу Srvr="server1c";Ref="base1c"; - запускаться она будет, но серверная отладка работать не будет.
(85) вместо ip-адреса сервера укажите имя сервера
у вас сервер 1с зарегистрирован по имени самого сервера, а вы пытаетесь запустить отладку по ip адресу
Ставите 3 виртуальную машину, виртуальный коммутатор лучше использовать внешний, разворачиваете на ней 1с сервер + SQL. Устанавливаем обновления все. Платформу старую тоже смысла ставить нет (если только на клиентах 1С вручную не обновляется конечно). При создании баз в настройках в качестве сервера SQL прописываете в итоге localhost. Потребление оперативной памяти сервером SQL ограничиваете половиной доступной серверу оперативной памяти. Все должно замечательно работать.
Видимость сервера в дополнительных параметрах общего доступа включаем. Брандмауэр не обязательно отключать, достаточно разрешить диапазон портов 1540-1591 (туда-сюда на всякий случай).
Все. Это гораздо проще, чем пытаться выловить, что же заглючило и пошло не так при настройке вашей конфигурации.
Справедливости ради стоит заметить, что варианты, когда сервер 1С на одной виртуальной машине, а SQL на другой - вполне рабочие. Вся экзотика в виде соблюдения регистра в имени сервера - ни к чему. Все должно отлично работать с нуля безо всяких танцев. Очень вероятно, что виновато у вас скорее железо, чем программная часть.
А вот мысль поражающая своей новизной: Если видимых проблем в настройках сервера не наблюдается, - так может их просто нет ?!
Что если проблема связана с клиентской машиной на которой производится отладка ?!
(Типа удалить все версии 1С, почистить кеш, установить клиентскую часть 1С заново; netsh winsock reset)
(91) К слову говоря вашу версию легко проверить, если попытаться запустить отладку на другой машине, у меня вообще нигде отладка не работала, по всему офису.