Приветствую Вас ГостьВоскресенье, 21.07.2019, 16:11

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

Всего материалов в каталоге: 36
Показано материалов: 1-10
Страницы: 1 2 3 4 »

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

В это случае мне помогло выполнить "Проверка логической целостности информационной базы" в Тестировании и исправлении информационно базы"

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

Принцип такой:

Формируем файл на сервере. Имя генерируем  ПолучитьИмяВременногоФайла();. Потом передаем временный файл в хранилище и удаляем его на сервере.

На клиенте получаем файл из хранилища  с помощью ОписаниеПередаваемогоФайла и НачатьПолучениеФайлов. В последнем указываем оповещение. В процедуре оповещения на входе получаем массив принятых файлов.

 

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

В БСП (1С:Библиотека стандартных подсистем 8.2) если у пользователя есть полные права, то остальные роли игнорируются. Т.е. если у пользователя полные права и роль "Роль1", а в коде стоит проверка "Если РольДоступна("Роль1")..." то у пользователя эта проверка может не сработать. В этом случае надо добавлять так же в условие проверку на РольДоступна("ПолныеПрава")

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

Задача делится на 2 подзадачи:

1) сначала открываем диалог выбора файла немодально и присваиваем реквизиту формы ФайлДанных значение выбранного файла. Для строкового реквизита ФайлДанных устанавливаем свойство "Кнопка выбора" = Да, и пишем обработчик события "Начало выбора".

2) передаем файл на сервер после чего обрабатываем его. (можно почитать здесь: https://its.1c.ru/db/v8std#content:542:hdoc)

Для передачи используем процедуру НачатьПомещениеФайла(ОписаниеОповещения,   ,  ФайлДанных,  Ложь, УникальныйИдентификатор);. 

Здесь УникальныйИдентификатор - это УИД формы (можно было написать ЭтаФорма.УникальныйИдентификатор)

На входе процедуры в описании оповещения вторым параметром идет Адрес. Его можно задать принудительно при вызове процедуры НачатьПомещениеФайла. Если он не задан, то создается новый файл и в адрес будет занесен путь файла во временном хранилище. У этой процедуры есть параметр "Интерактивно". Если он равен Истина, то можно не писать обработку выбора файла. Система сама вызовет такой диалог и передаст файл во временное хранилище.

1С сильно рекомендует использовать ПолучитьИмяВременногоФайла() для создания временных файлов. При этом имя формируется в временный каталог пользователя. Если имя временного файла и каталог задать жестко, то есть вероятность того, то при запуске обработки другим пользователем выйдет ошибка совместного доступа к файлу.

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

Столкнулся с тем, что табличный документ не хотел печататься на 2 сторонах. Проблема решилась неожиданным способом: увеличил размер полей.

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

Часто бывает, что при печати таблицы многострочная ячейка разбивается на 2 листа, если целиком не влезла. Особенно коряво получается, когда в одном из соседних столбцов 2 строки, а в другом одна объединенная строка, тогда лист оканчивается посередине объединенной ячейке и буквы рвутся по горизонтали.

Чтобы этого избежать в макете табличного документа в свойствах строки устанавливаем свойство "ВместеСоСледующим" В этом случае, если эта строка и следующая не влезают на 1 лист, то они обе переносятся на другой. 

Это же можно использовать и для колонок.

 

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

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

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

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

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

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

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

СКД | Просмотров: 10 | Добавил: 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

 

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

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

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

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

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

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


Вход на сайт
Поиск
Категории раздела
Материалы по 1С [30]
Редакторы языка QPILE [3]
Текстовые редакторы в которых удобно создавать портфели на языке QPILE
Программы для MetaTrader4 [0]
Эксперты, индикаторы и т.д.
Разное [3]
Сюда я буду складывать интересные мысли. Дома рано или поздно потеряю, а здесь все равно никто читать не будет.
Статистика

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