Приветствую Вас ГостьВоскресенье, 15.06.2025, 08:46

Каталог статей

В разделе материалов: 244
Показано материалов: 221-230
Страницы: « 1 2 ... 21 22 23 24 25 »

Независимо от того, какой запрос написан в наборе данных, СКД исключает из результирующего запроса поля, не участвующие в настройках отчета. Это может приводить к тому, что в результате суммы по оборотам могут быть либо больше, либо меньше реальных.

Например, делаем запрос по сумме проданной номенклатуры. В запросе указываем день, номенклатуру, сумму, покупателя, регистратор. Допустим у нас один и тот же покупатель купил 3 раза одну и туже номенклатуру в один и тот же день по одной и той же цене (100 руб.).

  • Регистратор1, Номенклатура, Покупатель, 100
  • Регистратор2, Номенклатура, Покупатель, 100
  • Регистратор3, Номенклатура, Покупатель, 100

Если в настройках отчета укажем все поля запроса то получим верные данные. Если укажем только номенклатуру, покупателя и сумму, то рискуем получить меньший оборот, если у нас не будет детальных записей. В этом случае СКД сгруппирует все данные и вместо 3 строк по 100 руб, у нас появится 1 строка по 100 руб. Так как все 3 покупки будут различаться только регистраторами, который мы не включили, то в результате данные сгруппируются до 1 строки: Номенклатура, Покупатель, 100

Чтобы такого не случилось (мало ли как будут настраивать отчет пользователи), надо поставить в Роли поля "Регистратор" галку "Обязательное" 

В этом случае, какая бы не была настройка отчета, поле Регистратор всегда будет участвовать в запросе СКД

СКД | Просмотров: 1111 | Добавил: leshic | Дата: 17.06.2019 | Комментарии (0)

Рефа́кторинг (англ. refactoring), или перепроектирование кода, переработка кода, равносильное преобразование алгоритмов — процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы.

Во многом при рефакторинге лучше полагаться на интуицию, основанную на опыте. Тем не менее имеются некоторые видимые проблемы в коде (англ. code smells), требующие рефакторинга:

  1. дублирование кода;
  2. длинный метод;
  3. большой класс;
  4. длинный список параметров;
  5. «жадные» функции — это метод, который чрезмерно обращается к данным другого объекта;
  6. избыточные временные переменные;
  7. классы данных;
  8. несгруппированные данные.

Один из основных приемов "Выделение метода".

Выделение метода заключается в выделении из длинного и/или требующего комментариев кода отдельных фрагментов и преобразовании их в отдельные методы, с подстановкой подходящих вызовов в местах использования. В этом случае действует правило: если фрагмент кода требует комментария о том, что он делает, то он должен быть выделен в отдельный метод. Также правило: один метод не должен занимать более чем один экран (25-50 строк, в зависимости от условий редактирования), в противном случае некоторые его фрагменты имеют самостоятельную ценность и подлежат выделению. Из анализа связей выделяемого фрагмента с окружающим контекстом делается вывод о перечне параметров нового метода и его локальных переменных.

В 1С есть встроенный механизм Выделение метода. Примеры использования можно посмотреть здесь: https://1c-programmer-blog.ru/platforma/refaktoring-v-1s.html

 

Программирование | Просмотров: 427 | Добавил: leshic | Дата: 23.05.2019 | Комментарии (0)

Информацию взял с http://1centerprise8.blogspot.com/2015/12/vyvod-tch-v-ja-chejku.html

Для отображения нескольких строк (значений) в одной ячейке надо использовать агрегатный функции Массив([Различные] Выражение) и СоединитьСтроки (Значение, РазделительЭлементов, РазделителиКолонок).

Так же есть агрегатная функция ТаблицаЗначений([Различные] Выражение1 [КАК ИмяКолонки1][, Выражение2 [КАК ИмяКолонки2],...]), но при её использовании не получиться вывести таблицу внутри ячейки.

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

СКД | Просмотров: 5156 | Добавил: leshic | Дата: 23.05.2019 | Комментарии (0)

При обновлении платформы на сервере могут вылезти следующие косяки:

1. Отвалилась консоль.

Чтобы исправить надо перерегистрировать в реестре новый путь для консоли. Так же надо не забыть установить "Администрирование сервера 1С: Предприятия"

2. Отвалились веб-сервисы.

Лечится установкой нового клиента на IIS. Так же в настройках IIS надо проверить обработчик ("Сопоставление обработчиков" в разделе IIS для сайта Default Web Site)

Для обработчика 1C Web-service Extension надо прописать путь C:\Program Files\1cv8\<правильная версия>\bin\wsisapi.dll 

3. Отвалилась отладка.

Если ранее была отладка по HTTP, то она может отвалиться. Для того, чтобы отладка заработала надо проверить строку запуска службы агента сервера 1С.

В строке запуска должны стоять ключи -debug -http . Первый говорит, что отладка должна быть, а второй указывает, что отладка по http.

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

4. Отвалилась оснастка "Администрирование серверов 1С Предприятия".

Чтобы оснастка снова заработала надо зарегистрировать библиотеку "C:\Program Files\1cv8\<Версия платформы>\bin\radmin.dll".

Переходим в нужный каталог с платформой и пишем команду regsvr32 radmin.dll

Администрирование | Просмотров: 450 | Добавил: leshic | Дата: 21.05.2019 | Комментарии (0)

ОписаниеТипов используется для определения типов колонок в таблице значений.

Примеры:

ОписаниеТипов("СправочникСсылка.Оборудование");

Новый ОписаниеТипов("Дата");

Новый ОписаниеТипов("Строка"); // если тип колонки строка, то его можно вообще не указывать, так как тип Строка подставляется по умолчанию

///////////////////////////////////////////////////////////////////////

Через квалификаторы.

Формат:

Новый ОписаниеТипов(<Типы>, <КвалификаторыЧисла>, <КвалификаторыСтроки>, <КвалификаторыДаты>, <КвалификаторыДвоичныхДанных>)

Примеры:

Массив = Новый Массив;
Массив.Добавить(Тип("СправочникСсылка.Методы"));
Массив.Добавить(Тип("Число"));
Знак = ДопустимыйЗнак.Неотрицательный;
КвЧисла = Новый КвалификаторыЧисла(10, 2, Знак);

ДопустимыеТипы = Новый ОписаниеТипов(Массив, КвЧисла);

///////////////////////////////////////////////////////////////////////////

Когда колонка может содержать несколько типов:

КЧ = Новый КвалификаторыЧисла(12,2);
КС = Новый КвалификаторыСтроки(20);
Массив = Новый Массив;
Массив.Добавить(Тип("Строка"));
ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС);
Массив.Очистить();
Массив.Добавить(Тип("Число"));
ОписаниеТиповЧ = Новый ОписаниеТипов(Массив, , ,КЧ);

// Создание таблицы значений 

ТаблицаЗначений = Новый ТаблицаЗначений;
// добавим в таблицу значений три колонки

ТаблицаЗначений.Колонки.Добавить("Отдел",ОписаниеТиповС,"Отдел",20);
ТаблицаЗначений.Колонки.Добавить("Сотрудник",ОписаниеТиповС,
        "Фамилия сотрудника",20);
ТаблицаЗначений.Колонки.Добавить("Оклад",ОписаниеТиповЧ,"Оклад",10);

Объекты конфигурации и типы данных | Просмотров: 1141 | Добавил: leshic | Дата: 20.05.2019 | Комментарии (0)

1С СКД. Параметры и необязательные параметры
http://wiki.programstore.ru/1s-skd-parametry-i-neobyazatelnye-parametry/

СКД | Просмотров: 449 | Добавил: leshic | Дата: 08.05.2019 | Комментарии (0)

Источник https://infostart.ru/public/181336/

В конфигураторе условное оформление существует на уровне самой формы (как в формах объекта, так и списка):

В формах списка условное оформление существует и на уровне самого динамического списка:

Программная работа с условным оформлением (УО).

Начнем с того, что работа с УО доступна только:

&НаСервере

Для Добавления элемента УО в списке нужно обратится к списку и добавить элемент УО:

ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить();

Для УО формы добавление происходит через прикладной объект УсловноеОформление:

ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();

Далее алгоритмы будут похожими. Для УО нам нужно задать условие отбора, задать значение свойства УО и добавить оформляемые поля.

// Создаем условие отбора
ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля); // имя поля
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; // либо задаем свой
//**** Значение для отбора
ЭлементОтбора.ПравоеЗначение = ЗначениеДляОтбора;
// следует заметить что правым значением может выступать ПолеКомпоновкиДанных формы или списка
ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля);
//****
ЭлементОтбора.Использование = Истина;

Значение свойства УО:

// Установка значения элемента УО
// Возможно обращение как по индексу так и установка через метод
//1.
Элемент = ЭлементОформления.Оформление.Элементы[0];
Элемент.Значение = Цвет;
//2.
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СеребристоСерый);

Элемент.Использование = Истина;

Добавим поля оформления, если ничего не добавлять, то система применит оформления ко всей строке:

// Создаем поля оформления
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(ПолеДляОформления);
ПолеОформления.Использование = Истина;

В качестве ИменПолей нужно передавать строковое представление ИМЕНИ реквизита.

Формы | Просмотров: 802 | Добавил: leshic | Дата: 29.04.2019 | Комментарии (0)

Если требуется выводить только количество в итогах, а в детальных записях ничего не выводить, тогда в настройках выбираем ветку <Детальные записи>, на вкладке "Выбранные поля", разворачиваем <Авто> и убираем галку с того поля, которое не должно отображаться.

Если надо чтобы в группировке выходила не сумма всех записей, а только одно значение (например когда есть общий остаток по абоненту и остатки в разрезе услуг в 2 разных столбцах), то в выражении ресурса можно использовать формулу типа:  Сумма(ВычислитьВыражениеСГруппировкойМассив("Максимум(ТекущийОстаток)", "Абонент"))

 

СКД | Просмотров: 789 | Добавил: leshic | Дата: 26.04.2019 | Комментарии (0)

1С продвигает технологию 1C:Enterprise Development tools (EDT)

По сути это разработка в Eclipse функционала 1С. Надо скачать плагины и добавить конфигурацию. Пока не все объекты доступны, но основная часть уже включена.

Так как Eclipse работает на Java, то разработка теперь доступна не только под Windows, но и под Linux.

Подробнее можно почитать здесь https://infostart.ru/public/344802/

https://edt.1c.ru/docs/git/?hash=t000055.html#t000055

Администрирование | Просмотров: 360 | Добавил: leshic | Дата: 24.04.2019 | Комментарии (0)


Вход на сайт
Поиск
Категории раздела
СКД [51]
Регистры [7]
Формы [47]
Администрирование [46]
Запросы [11]
Объекты конфигурации и типы данных [20]
Взаимодействие с другими базами, приложениями и источниками данных [16]
Программирование [46]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0