Ответы пользователя по тегу
  • Как исправить мой код 1С: Предприятие нахождение максимального элемента в табличной части чтоб он не выдавал ошибку?

    Mikhail_E
    @Mikhail_E
    1С, SQL
    Ужас какой.
    Если по вашему коду тогда так :
    Выборка=Справочники.Варианты_головных_уборов.Выбрать(); 
    Пока Выборка.Следующий() Цикл
    	Макс2=0;
    		Для каждого а из Выборка.ТабличнаяЧасть1 Цикл
    			Если Макс2>а.Количество_материалов тогда
    				Макс2=а.Количество_материалов;
    			КонецЕсли;        		
    		КонецЦикла; 
    			Сообщить(макс2.Количество_материалов);
    КонецЦикла;

    А вообще это запросом делается конечно.
    Запрос = Новый Запрос("Выбрать Первые 1 
    		|т.Ссылка как ВариантГоловногоУбора,
    		|Максимум(т.Количество_материалов) как МаксимальноеКоличествоМатериалов
    		|Из Справочник.Варианты_головных_уборов.ТабличнаяЧасть1 как т
    		|Сгруппировать по т.Ссылка
    		|Упорядочить по МаксимальноеКоличествоМатериалов Убыв");
    	РезультатВыборка = Запрос.Выполнить().Выбрать();
    	Если РезультатВыборка.Следующий() Тогда
    		Сообщить("Вариант:"+РезультатВыборка.ВариантГоловногоУбора+", Количество материалов:"+РезультатВыборка.МаксимальноеКоличествоМатериалов); 
    	КонецЕсли;
    Ответ написан
    Комментировать
  • Не понимаю, выполнение кода без итерации?

    Mikhail_E
    @Mikhail_E
    1С, SQL
    foonfyrick ,
    В чём вопрос то ?
    ВыборкаДанных - работает аналогично всем другим ЯП.
    То что при выполнении функции "Следующий()", происходит перещёлкивание на следующию запись и удалось ли перейти на след запись или нет (Истина/Ложь) - Написано в СП ...(RTFM)
    Код вполне адекватный ... "Проверь что-то запросом в таб. части ... если не нашел добавляй по коду ...
    Если нашел - не добавляй. "
    Ответ написан
    Комментировать
  • Как указать точный доп. реквизит для загрузки данных?

    Mikhail_E
    @Mikhail_E
    1С, SQL
    Можно попробовать что-то типа:
    РеквизитДляЗаписи = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", ИмяРеквизитаСвойства);


    Или любой другой реквизит, который точно отличается у доп. реквизитов
    Ответ написан
  • Возможно ли Извлечь / Выбрать значение доп. реквизита номенклатуры?

    Mikhail_E
    @Mikhail_E
    1С, SQL
    Если БСП внедрена (Бухгалтерия/УТ/ЕРП/УНФ) тогда так :
    НаименованиеРеквизита = "";	 //Сюда вставить наименование реквизита
    	ЗначениеРеквизита = ""; 		//Сюда вставить значение
    
    	ВашРеквизит = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(НаименованиеРеквизита );
    
    	ТаблицаДопРеквизитов = Новый ТаблицаЗначений;
    	ТаблицаДопРеквизитов.Колонки.Добавить("Свойство", Новый ОписаниеТипов("ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения"));
    	ТаблицаДопРеквизитов.Колонки.Добавить("Значение");
    
    	НоваяСтрокаЗначений = ТаблицаДопРеквизитов.Добавить();
    	НоваяСтрокаЗначений.Свойство = ВашРеквизит;
    	НоваяСтрокаЗначений.Значение= ЗначениеРеквизита ;
    	УправлениеСвойствами.ЗаписатьСвойстваУОбъекта( НоваяНоменклатураСсылка, ТаблицаДопРеквизитов)
    Ответ написан
  • Отобразить видимость регистра накоплений?

    Mikhail_E
    @Mikhail_E
    1С, SQL
    скорее всего первый документ не является регистратором регистра
    Ответ написан
    5 комментариев
  • Как заставить сервер c 2xE5-2630 v4, 128GB, raid ssd грузить процессор на 100% (тест Гилева 21,65)?

    Mikhail_E
    @Mikhail_E
    1С, SQL
    1. Загрузить процессор на MSSQL можно так :
    - Должна быть задача на SQL серваке, которая потребует этих ресурсов (в простое или при малых задачах SQL проц не загрузит)
    - Ставим параллелизм = количеству ядер
    - Ставим Стоимостной порог в 0.
    После завершения текущих проверок, советую вернуть MAXDOP/MaxThreshhold на (1/4 или 1/8 от количества ядер а порог выявить методом проб и замеров). Дело в том, что загрузка проца 100% не значит что всё будет быстрее (только в некоторых случаях типа проверки целостности). Т.к. при распараллеливании запросов по ядрам, появляются "Накладные расходы" на распараллеливание и сбор обратно результатов воедино. Это будет выглядеть как ожидания CXPACKET и Latch. (См "закон Амадала" + CXPACKET в гугле)
    2. "Проверка целостности базы данных" - на ежедневной основе смысла не имеет, особенно если база достаточно крупная. Её имеет смысл делать или при возникновении проблем, или раз в квартал/месяц ... зависит от размеров базы. UPD: Лучше всё же её делать, если позволяет размер и тех. окно. Т.к. можно упустить ошибку целостности и перенести её в бэкап.
    3. Если есть проблемы с производительностью, это вопрос не простой, и требует кучу опыта. Навскидку рекомендую сначала проверить :
    - Нагрузку на дисковую подсистему, и если там будет проблема (Очередь к диску более 2 в среднем) выполнить разнесение *.mdf, *.log, tempdb, инстанс кластера 1c серверов на отдельные диски.
    - Нагрузку на оперативку от MSSQL (можете гуглить это может вызывать большую активность IO на дисковую подсистему)
    - Проверить способ коннекта к MSSQL ("Shared memory" должно быть "on" и использоваться, если 1с сервак и mssql сервак физически на одно машине .. это +10% к производительности.
    ну и куча чего ещё ... в одном посте всего не расписать.
    и т.д. вариантов очень много.
    главный совет: решайте проблемы , только если она есть и мешает, если это лично ваше мнение, а пользователям не мешает, лучше делайте настройки по дефолту (см. APDEX, анализ производительности)
    UPD: И да, виртуалки для 1C + MSSQL = зло, и не потому что "фирма 1С плохая", а потому что у вас не сможет 1С и MSSQL не сможет общаться через оперативку, и между оператором чтения на MSSQL до железа сервера будет 4 прослойки (SQLOS, OS виртуалки, Гипервизор, OS сервера, вместо SQLOS + OS сервера).
    Ответ написан
  • Как синхронизировать УПП и ERP?

    Mikhail_E
    @Mikhail_E
    1С, SQL
    В общем случае, при такой постановке задачи, обычно используется Обмен с правилами КД2 или КД3.
    Примерная инструкция
    ... а дальше начнутся нюансы :
    Насколько быстро документ должен там появляться ? (Возможно вэбсервис потребуется)
    Нужен ли обратный обмен (Узлы обмена и регистрация изменений)
    Кто будет это контролировать/Администрировать ? (Работа с ошибками обмена)
    и т.д. но начать можно с простого ... Написать правила переноса на Конвертации данных 2.0 и перенести документ по опр. признакам в базу приемник. Потом создать (Или использовать существующий) узел обмена, через настройку обмена - загрузить свои правила и повесить обмен на регл. задание.
    Ответ написан
  • Как найти что обнуляет(стирает) значение реквизита в 1С?

    Mikhail_E
    @Mikhail_E
    1С, SQL
    Ну самое простое - посмотреть в журнале регистрации, кто и и когда изменяет этот справочник (там пишется пользователь , сеанс, дата. Есть отбор по ссылкам. Это даст хотя бы направление в которое нужно разбираться ...
    Ответ написан
    1 комментарий
  • Как разграничинить видимость документов, справочников в 1С по филиалам в 1С 8.3 УТП 2.0?

    Mikhail_E
    @Mikhail_E
    1С, SQL
    В Общем случае для этого есть механизм "RLS" (Record Level Security), или ограничение доступа на уровне записей.
    НО: этот механизм довольно сильно скажется на производительности Базы (везде где будет ограничение, будут ощущаться тормоза), зато минимальными затратами получится сделать то, что вы хотите, и это будет в 1-й базе.
    2-й вариант, который обычно встречается на практике - создаются базы для каждого Филиала и настраивается "Распределенная база данных" (обмены между филиальными базами и центральной). Таким образом обычно каждый филиал работает со своей информацией, Которая по стандартным обменам стекается в центральную.
    Ответ написан
  • Почему конфигуратор не видит дистрибутив обновления?

    Mikhail_E
    @Mikhail_E
    1С, SQL
    1. Убедитесь что вы скачали обновления именно для ЗУП (Базовая).
    Если п.1 выполнен и обновления точно для вашей версии (Базовой) тогда причина скорее всего в том, что предыдущие обновления вам ставили "Сравнением/объединением с файлом *.cf"
    Результат : Конфигурация поставщика осталась старой версии, а конфигруация бд (которая у вас на 1-м скриншоте) - актуальной версии.
    Когда вы выбираете обновление в конфигруаторе - программа сверяет текущую версию конфигруации поставщика и файлы обновления. в Итоге говорит что версии не подходят. (Привет прошлым обновляторам).
    Решение : Смотрите какая версия у вас текущая у конфигруации поставщика : (Конфигруация => Поддержка => Настройка поддержки. Там вы увидите вашу версию конфигруации поставщика. Скачиваете все обновления чтобы догнать конфигруацию до текущего вашего релизац конфигруации БД.
    Выбираете первый, и жмете обновить. Вам откроется окно "Сравнение/объединение конфиграции". снимаете ВСЕ Галки. жмете применить. Таким образом вы обновите конфигруацию поставщика до следующего релиза. И так пока конфигруация поставщика не станет равной текущей версии конфиграции БД.
    Дальше те действия, которые вы сейчас проделали - сработают.
    !Обязательно сделайте бэкап перед всей этой процедурой!
    UPD. Когда будете обновлять через дистрибутивы обновления обязательно поставте галку "Отображать окно сравнения конфигруаций" оно вылазит на одном из подготовительных шагов к обновления. если галку не поставите, она вам может текущую конфу затереть.
    Ответ написан
    7 комментариев
  • Как отправить запрос с сайта в 1С?

    Mikhail_E
    @Mikhail_E
    1С, SQL
    Да, есть такая возможность.
    У 1С есть такой объект в конфигураторе "Web Сервис". но на стороне сервера 1С должен стоять Apache или IIS. Она (1С) прописывает свою Dll в Веб сервер и Имя вебсервиса с путем к базе данных. Ты посылаешь запрос на вебсервер (Например Localhost/myDB/PostOrder), у него (Вебсервера) в конфиге прописано - обращаться на нужую Dll, Dll пересылает запрос на конкретную базу, а там конекретный вебсервис (По имени входа), а там уже процедура и дальше код 1С ... с возвратом или без .. по желанию.
    Больше информации гуглится по "1с веб сервис пример"
    Ответ написан
    Комментировать
  • Видит ли 1с сервер x32 больше 4 гигов ОЗУ в 64-битной системе?

    Mikhail_E
    @Mikhail_E
    1С, SQL
    Если нужно больше 4 Гб оперативы, "1С приложение обязательно должно быть х64"
    Ответ написан
  • Как реализовать обработчик?

    Mikhail_E
    @Mikhail_E
    1С, SQL
    "Подписки на события" - это про серверные подписки на серверные события (Запись / проведение и т.п.)
    "сделать вызов формы с оповещением о новой заявке получателю" вызов клиента со стороны сервера в 1С не реализован. (Исключение : месенджер Системы взаимодействия)
    Есть следующие варианты реализации того, что вы хотите:
    1. При создании заявки присваивать некий параметр получателя в самой заявке, у получателя должна быть открыта некая форма, на которой подключен "Обработчик ожидания" который через некоторое время запросом вытягивает новые заявки с параметром этого получателя и далее на клиенте происходит некое визуальное оповещение. (Если форма не открыта - оповещения не произойдёт).
    2. Система взаимодействия - Некий встроенный месенджер который работает примерно как скайп и может выводить штатное оповещение о сообщении, но кастомизировать его сильно не получится. (Про систему взаимодействия могу ошибаться, работал с ней мало).
    Ответ написан
    Комментировать