среда, 19 ноября 2014 г.

Как отключить автозагрузку OneNote

Откройте OneNote, нажмите Файл-Параметры-Экран и снимите галку Поместить значок OneNote в область уведомлений панели задач. 

четверг, 13 ноября 2014 г.

Ссылка и объект 1С

Ссылка- идентификатор в базе данных, с помощью которого система поддерживает уникальность (объектов!). А то, что нам доступно “по точке” (Петров.НомерПаспорта) – это просто удобство 1С предприятия и на самом деле любая “точка” это еще один запрос к базе данных.
Если нам необходимо изменить некие данные, к примеру в справочнике, то необходимо получить сам объект!
При попытке записать данные в ссылку получаем ошибку: "Поле объекта недоступно для записи 1С"
Получить объект из ссылки- Ссылка.ПолучитьОбъект()

среда, 24 сентября 2014 г.

среда, 3 сентября 2014 г.

Получение клиентских лицензий через сервер 1С:Предприятия

Отсюда

Раздел описывает особенности получения лицензий клиентами 1С:Предприятия через сервер 1С:Предприятия.

Когда сервер 1С:Предприятия выдает клиентские лицензии

Для запуска клиента 1С:Предприятия необходимо наличие свободной лицензии в клиентском ключе. При запуске клиент 1С:Предприятия выполняет поиск доступной клиентской лицензии в следующей последовательности:
  • локальный клиентский ключ (кроме веб-клиента);
  • сетевой клиентский ключ (кроме веб-клиента);
  • локальный клиентский ключ сервера (кроме информационной базы на локальном компьютере или на компьютере в локальной сети). Для информационной базы на сервере 1С:Предприятия используется локальный ключ компьютера менеджера лицензий, на который назначен сервис сеансовых данных. Для файловой информационной базы на веб-сервере используется локальный ключ веб-сервера;
  • сетевой клиентский ключ сервера (кроме информационной базы на локальном компьютере или на компьютере в локальной сети). Для информационной базы на сервере 1С:Предприятия доступ к сетевому ключу выполняет компьютер менеджера лицензий, на который назначен сервис сеансовых данных. Для файловой информационной базы на веб-сервере доступ к сетевому ключу выполняет веб-сервер;
  • программная лицензия базовой конфигурации.
Таким образом, если клиент 1С:Предприятия не нашел свободной клиентской лицензии на одном из доступных ему ключей, то он обращается за клиентской лицензией на сервер. В этом случае сервер выполняет поиск и занятие свободной лицензии на одном из клиентских ключей, доступных серверу.

Отличия в получении клиентских лицензий через сервер

Механизм получения сервером клиентских лицензий в основном аналогичен получению клиентских лицензий клиентами. Его особенности определяются тем, что процесс менеджера кластера, на который назначен сервис сеансовых данных, или веб-сервер для файловой информационной базы:
  • может занять одновременно несколько клиентских лицензий, в отличие от клиента;
  • может подключиться только к одному локальному и одному сетевому ключу одной серии;
  • в общем случае не может идентифицировать клиентский компьютер из-за возможности подключения клиента к информационной базе через веб-сервер.

Одна лицензия на экземпляр клиента

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

Локальная установка сетевого клиентского ключа

Если многопользовательский (сетевой) клиентский ключ установлен в компьютер менеджера кластера, на который назначен сервис сеансовых данных, а для файловой информационной базы - в веб-сервер, то сервер может получить из этого ключа несколько клиентских лицензий (в соответствии с номиналом ключа) даже если на компьютере не установлен менеджер лицензий. Отсутствие менеджера лицензий не позволит использовать этот ключ с других компьютеров локальной сети или из терминальных сессий иначе, как через сервер.
Такой способ подключения можно использовать для того, чтобы клиенты, имеющие доступ к информационной базе через веб-сервер, гарантированно не могли занять лицензии клиентов, работающих в офисе по локальной сети. Для этого:
  • установите клиентский ключ с лицензиями, предназначенными для доступа через веб-сервер, в компьютер сервера и не устанавливайте на нем менеджер лицензий.
  • на компьютере сервера в подкаталог conf каталога загрузочных модулей 1С:Предприятия поместите файл nethasp.ini, запрещающий поиск клиентского ключа по сети, например такой:
Копировать в буфер обмена
[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Disabled
  • другой клиентский ключ, лицензии которого предназначены для пользователей локальной сети, установите в другой компьютер и запустите на нем менеджер лицензий.
Сервер предпринимает попытку получения клиентской лицензии из локальных ключей всех клиентских серий: ORGL8 (1 - 100 пользователей), ORG8A (300 пользователей), ORG8B (500 пользователей). Установка в компьютер сервера нескольких ключей разных серий позволяет увеличить количество клиентских лицензий, доступных для получения через сервер.

Доступ сервера к сетевому клиентскому ключу

Если сервер не нашел свободной лицензии в локальных ключах, то он выполняет поиск свободной лицензии на сетевых ключах всех клиентских серий в соответствии с настройками файла nethasp.ini.
Сервер может иметь соединение только с одним сетевым ключом одной серии. При исчерпании лицензий в одном сетевом ключе поиск в сети других ключей той же самой серии не выполняется. Таким образом, общее количество клиентских лицензий, доступных для получения через один сервер ограничено числом 1800: локальный на 100, локальный на 300, локальный на 500, сетевой на 100, сетевой на 300, сетевой на 500.

Множественное назначение сервиса сеансовых данных

Чтобы через сервер могло быть получено более чем 1800 клиентских лицензий необходимо:
  • определить кластер серверов 1С:Предприятия на 2 и более компьютерах;
  • на каждом из компьютеров (кроме первого) запустить дополнительный менеджер кластера;
  • сервис сеансовых данных назначить нескольким менеджерам на разных компьютерах;
  • при использовании локальных ключей установить локальные ключи в каждый из компьютеров менеджеров, на которые назначен сервис сеансовых данных;
  • при использовании сетевых ключей на компьютерах менеджеров, на которые назначен сервис сеансовых данных, определить nethasp.ini с указанием разных менеджеров лицензий, Например:
Копировать в буфер обмена
[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 1.2.3.4 ; Адрес компьютера с менеджером лицензий
NH_USE_BROADCAST = Disabled
и
Копировать в буфер обмена
[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 1.2.3.5 ; Адрес компьютера с менеджером лицензий
NH_USE_BROADCAST = Disabled
В этом случае кластер серверов 1С:Предприятия будет равномерно распределять клиентские сеансы между менеджерами, что позволит обеспечить доступность через сервер произвольного количества клиентских лицензий.

Продукт с регистрационным номером комплекта ******** допускает одновременное использование не более 1 пин-кодов

Сообщение, что продукт допускает одновременное использование не более 1 пин-кодов, означает, что на другом компьютере, либо на данном компьютере в другом каталоге присутствует другой файл, также содержащий лицензию, полученную по этому рег.номеру.

Файл лицензии на компьютере должен быть один. Его можно перемещать, но нельзя копировать.

Для решения проблемы следует на всех компьютерах, где ставилась эта лицензия, найти и удалить все файлы 2*.lic и все файлы conn8211.pfl

понедельник, 9 июня 2014 г.

Выдача лицензий сервером 1С предприятия

Следует учитывать следующую особенность:
  Если в сети будет обнаружено несколько многопользовательских клиентских ключей серии ORGL8 и в свойствах информационной базы в консоли кластера параметр "Разрешить выдачу лицензий сервером "1С:Предприятия" = ДА, то сервером будет выбран один произвольный ключ. После исчерпания лицензий этого ключа, возможно использование одного многопользовательского ключа ORGL8A и затем возможно использование одного многопользовательского ключа ORGL8B.

вторник, 3 июня 2014 г.

понедельник, 19 мая 2014 г.

Поиск и замена дублей контрагентов и их договоров

Стандартная обработка "Поиск и замена дублирующихся элементов справочников" не производит такую замену т.к. по умолчанию в ней стоит флаг "Выполнять все замены в одной транзакции". Если его снять- все ок!

вторник, 22 апреля 2014 г.

Отчет Анализ заказов покупателей

Графа "Осталось обеспечить"

ЕСТЬNULL(ЗаказыПокупателейОстаткиИОбороты.КоличествоКонечныйОстаток, 0)

-ЕСТЬNULL(ТоварыВРезервеНаСкладах.КоличествоОстаток, 0)

-ЕСТЬNULL(РезервыКПередаче.КоличествоОстаток, 0) = РегистрНакопления.ТоварыКПередачеСоСкладов

+ЕСТЬNULL(РезервыКПолучению.КоличествоОстаток, 0) = РегистрНакопления.ТоварыКПолучениюНаСклады

-ЕСТЬNULL(РазмещениеЗаказовПокупателей.КоличествоОстаток, 0)

четверг, 13 марта 2014 г.

RLS


  1. Сам язык Ограничений доступа являют собой язык запросов 1С, большинство конструкций можно опробоать в стандартном конструкторе запросов.
  2. Амперсанд (&) означает ссылку на Параметр сеанса
  3. Описание в Руководстве разработчика- п.5.5.4.8 "Роли и права доступа", главы 5 "Объекты конфигурации" (~ стр. 1-177)

четверг, 6 марта 2014 г.

Создание внешней печатной формы


  1. Создать внешнюю обработку
  2. Добавить туда реквизит СсылкаНаОбъект и присвоить ему тип ДокументСсылка
  3. Скопировать из исходного документа шаблон печатной формы
  4. Добавить в модуль обработки функцию Печать() с пометкой Экспорт
  5. Скопировать в модуль обработки из модуля исходного документа функцию формирования табличного документа (печати)
  6. Изменить параметры скопированной функции- параметры типа ДокументСсылка удалить, иные заменить. 
  7. Отредактировать текст скопированной функции- после проверки модуля в местах появления ошибок со ссылкой на удаленный параметр типа ДокументСсылка заменить эту ссылку на СсылкаНаОбъект
  8. Добавить в функцию Печать() вызов нашей исправленной функции и возврат сформированного табличного документа (Возврат ТабДокумент;)

пятница, 14 февраля 2014 г.

1С и OLE Automation


Для запуска системы 1С-Предприятия в качесте OLE Automation сервера из внешнего приложения выполняется следующая последовательность действий:
Создается объект Новый COMObject() с OLE идентификатором (регистр символов непринципиален):
  • V1CEnterprise.Application - версия независимый ключ;
  • V77.Application - версия зависимый ключ;
  • V77S.Application - версия зависимый ключ, SQL версия;
  • V77L.Application - версия зависимый ключ, локальная версия;
  • V77M.Application - версия зависимый ключ, сетевая версия.
Выполняется инициализация системы 1С-Предприятие методом Initialize().

Ошибка "Ошибка при вызове конструктора (COMObject): Интерфейс не поддерживается: Интерфейс не поддерживается" связана в первую очередь с неправильным указанием идентификатора (той версии к которой подключаемся!)!

Здесь много справочной информации

среда, 12 февраля 2014 г.

ОБЪЕДИНИТЬ и ОБЪЕДИНИТЬ ВСЕ

1. Конструкции ОБЪЕДИНИТЬ и ОБЪЕДИНИТЬ ВСЕ позволяют объединить несколько запросов. Каждый запрос собирает данные самостоятельно, а упорядочивание результатов и расчет итогов выполняются над результатом объединения.

2. Конструкция ОБЪЕДИНИТЬ соединяет два результата и группирует повторяющие строки, в отличии от ОБЪЕДИНИТЬ ВСЕ которая не группирует автоматически строки результата.

3. Настоятельно рекомендуется использовать ОБЪЕДИНИТЬ ВСЕ в запросах, где заведомо невозможно получения одинаковых строк. Это существенно повышает производительность – система не пытается группировать строки.

4. Объединяемые запросы должны иметь одинаковое количество полей в списке полей выборки. В случае отсутствия соответствующего поля у одного из запросов ставится 0 (числовое поле) или Null (конструктор запросов расставляет Null автоматически).

понедельник, 10 февраля 2014 г.

"Получить" Регистратор в таблице ОстаткиИОбороты...

РегистрНакопления.Партии.ОстаткиИОбороты(&ДатаКон, &ДатаКон, Регистратор, , )
или в Конструкторе запроса- Параметры виртуальной таблицы- Периодичность- Регистратор!

"Физические" и "виртуальные" таблицы регистров накопления

Самое важное отличие- "физическая"-





хранит сами записи движений (приход- 1500 кг, расход- 1100 кг и тп.).
"Виртуальные" таблицы хранят (точнее получают в момент запроса) ИТОГИ.

Т.о. если нам нужны Остатки по РН ТоварыНаСкладах то из физической таблицы мы их не получим! Мы можем только сгруппировать их по нужному нам признаку (к примеру ВидДвижения) и применить агрегирование (функцию)!

Сложности написания + выборка ВСЕХ записей регистра и лишь затем фильтрация, суммация и пр. (см. ниже материал с ныне недоступного сайта 1cexpo.ru).

Параметры виртуальных таблиц

При организации выборок в реальных задачах в подавляющем большинстве случаев организуется отбор данных в соответствии с некоторыми критериями.
В случае, когда выборка делается из реальной таблицы, никаких сложностей не возникает. Данные обрабатываются абсолютно тривиально:
В том случае, когда источником в запросе выступает виртуальная таблица, ситуация становится несколько сложнее.
Язык запросов позволяет наложить условие на выборку из виртуальных таблиц двумя способами: в предложении ГДЕ и с помощью параметров виртуальных таблиц. Оба способа приведут к одному результату (за исключением некоторых специфических случаев), но, тем не менее, они далеко не эквиваленты.
Мы уже знаем, что виртуальные таблицы потому и называются виртуальными, что в базе их на самом деле нет. Формируются они только в тот момент, когда к ним обращается запрос. Несмотря на это, нам (то есть, тем, кто составляет запрос) удобно рассматривать виртуальные таблицы именно как реально существующие. Что же произойдёт в системе 1С Предприятие 8, когда составленный нами запрос всё-таки обратится к виртуальной таблице?
На первом шаге, система построит виртуальную таблицу. На втором шаге из полученной таблицы будут выбраны записи, удовлетворяющие условию, заданному в предложении ГДЕ:
Хорошо видно, что в итоговую выборку попадут не все записи из виртуальной таблицы (а, следовательно, и из базы данных), а только те, которые удовлетворяют заданному условию. А остальные записи просто будут исключены из результата.
Таким образом, система проделает не просто бесполезную, а двойную бесполезную работу! Сначала будут затрачены ресурсы на построение виртуальной таблицы на основе лишних данных (на рисунке они помечены как «области данных А и Б»), а потом ещё будет проделана работа по фильтрации этих данных из окончательного результата.
Нельзя ли сразу, на этапе построения виртуальной таблицы, отказаться от использования ненужных данных? Оказывается, можно. Именно для этого и предназначены параметры виртуальных таблиц:
Параметризируя виртуальную таблицу, мы сразу ограничиваем объём данных, который будет обрабатываться запросом.

Активность записей

В реальных таблицах регистров 1С Предприятия есть весьма специфическое поле Активность. При работе с реальными таблицами, оно не отличается от любого другого поля, его можно записывать, читать и изменять. Его особенности проявляются при работе с виртуальными таблицами.
Механизм запросов 1С Предприятия устроен так, что при построении виртуальных таблиц в них включаются только записи, у которых поле Активность равно Истина. Для чего это нужно?
Самое главное, такое поведение системы очень удобно использовать в конфигурациях бухгалтерского учёта. Допустим, нужно сделать так, что бы у нас была возможность у какого-то документа «выключить проводки», То есть, нужно, что бы при необходимости этот документ не попадал в отчёты.
Конечно, можно просто отменять проведение документа. Но такой путь не удобен по двум причинам. При проведении документа, как правило, выполняются довольно громоздкие расчёты. И, значит, на то, что бы выключить/включить проводки у нас уйдёт некоторое (иногда, весьма значительное) время. Но с этим ещё можно с грехом пополам смириться. Гораздо хуже другое.
Как правило, в бухгалтерских конфигурациях существует документ для ввода ручных проводок (к примеру, он может называться «Ручная операция»). Этот документ устроен весьма незатейливо: у него нет своих табличных частей, а вместо этого пользователю предоставляется возможность вносить (корректировать, удалять) записи непосредственно в регистр. В то время, как обычные документы формируют движения при проведении, документ ручного ввода, естественно, работает иначе. Он не может формировать и удалять движения по регистру стандартным образом, потому что в его случае эти записи делаются вручную. Если мы удалим движения такого ручного документа, то восстановить их потом не сможем в принципе!
Что бы разрешить эту проблему, как раз и можно использовать поле Активность. Как мы уже говорили, с этим полем можно работать как с любым другим. А значит, для того, что бы движения документа не попадали в отчёты, достаточно записать Ложь в поле Активность во всех записях, относящихся к данному регистратору.