Шошин Алексей

170
Рейтинг

alexsh76
Алексей Шошин



  •   Регистрация: 31.08.2008 (15 лет назад)

  •   Был(а) на сайте: 10.04.2024

Подписчики 3

Группы

Профессиональный разработчик

IE 2013 REV Участник

IE 2014 Участник

IE 2014 Online

Рейтинг 170

Изменение реквизитов справочников

Инструменты и обработки Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m) Внешняя обработка (ert,epf) Инструментарий разработчика

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

1 стартмани

06.10.2010    4007    88    alexsh76    5       

1

Выгонялка для 1С (только для серверных баз).

Инструменты и обработки Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Windows Абонемент ($m) Приложение (exe) Инструментарий разработчика

Очень удобная (ИМХО) вышвыривалка пользователей. Имеет разные режимы работы, Просительный, предупреждательный, и бескомпромисный. Быстро и без загрузки 1с загружается и подключается к базам. Имеет возможность подключиться через radmin. Может разрешить открывать базу.

1 стартмани

14.10.2009    7215    769    alexsh76    34       

50

Еще один рабочий стол

Инструменты и обработки Для всех Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m) Внешняя обработка (ert,epf) Работа с интерфейсом Рабочее место

Посмотрел предложенный websamson рабочий стол, и сделал свой, более функциональный (для себя и своих пользователей).

1 стартмани

13.10.2009    8455    583    alexsh76    65       

116

Комментарии

DevКвадратный корень в запросе 1С#51 03.03.15 15:02
(49) (48), замерил на конкретных данных. ~13500 записей. Увеличение времени выполнения запроса ~300ms
DevКвадратный корень в запросе 1С#50 03.03.15 14:53
Еще некоторое дополнение, не использовать выбор а поместить во временную таблицу и использовать связь. Удобней, и правильней (особенно когда надо извлечь корень из нескольких полей)
Код
ВЫБРАТЬ
   0.0005623413251903491 КАК Y,
   0.000001 КАК ВерхнееЗначение,
   0 КАК НижнееЗначение
ПОМЕСТИТЬ SQRTS

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

ВЫБРАТЬ
   0.001778279410038923,
   0.00001,
   0.000001

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

ВЫБРАТЬ
   0.005623413251903491,
   0.0001,
   0.00001

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

ВЫБРАТЬ
   0.01778279410038923,
   0.001,
   0.0001

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

ВЫБРАТЬ
   0.05623413251903491,
   0.01,
   0.001

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

ВЫБРАТЬ
   0.1778279410038923,
   0.1,
   0.01

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

ВЫБРАТЬ
   0.5623413251903491,
   1,
   0.1

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

ВЫБРАТЬ
   1.778279410038923,
   10,
   1

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

ВЫБРАТЬ
   5.623413251903491,
   100,
   10

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

ВЫБРАТЬ
   17.78279410038923,
   1000,
   100

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

ВЫБРАТЬ
   56.23413251903491,
   10000,
   1000

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

ВЫБРАТЬ
   177.8279410038923,
   100000,
   10000

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

ВЫБРАТЬ
   562.3413251903491,
   1000000,
   100000

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

ВЫБРАТЬ
   1778.279410038923,
   10000000,
   1000000

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

ВЫБРАТЬ
   5623.413251903491,
   100000000,
   10000000
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   100 КАК Поле1
ПОМЕСТИТЬ Набор

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

ВЫБРАТЬ
   4

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

ВЫБРАТЬ
   125

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

ВЫБРАТЬ
   625

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

ВЫБРАТЬ
   100000
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Набор.Поле1,
   SQRTS.Y,
   (((SQRTS.Y + Набор.Поле1 / SQRTS.Y) / 2 + Набор.Поле1 / ((SQRTS.Y + Набор.Поле1 / SQRTS.Y) / 2)) / 2 + Набор.Поле1 / (((SQRTS.Y + Набор.Поле1 / SQRTS.Y) / 2 + Набор.Поле1 / ((SQRTS.Y + Набор.Поле1 / SQRTS.Y) / 2)) / 2)) / 2 КАК Поле2
ИЗ
   Набор КАК Набор
      ЛЕВОЕ СОЕДИНЕНИЕ SQRTS КАК SQRTS
      ПО Набор.Поле1 < SQRTS.ВерхнееЗначение
         И Набор.Поле1 >= SQRTS.НижнееЗначение
DevСуществует ли способ объявить в процедуре переменную уровня модуля формы (глобальную) без предварительного объявления#24 25.02.15 13:42
(22) hibico, АГа. но тогда теряется универсальность. Есть еще мысль, запоминать ввод, и перед выполнением следующей команды выполнять все предыдущие. Наверное на этом тему закрываю. Опять же все придумано до нас, например в http://infostart.ru/public/178496/
Здесь без построчного ввода, но это допиливается :-)
DevСуществует ли способ объявить в процедуре переменную уровня модуля формы (глобальную) без предварительного объявления#20 25.02.15 11:54
(17) Africa, Напоминаю, форма обычная. А в управляемой задача не решается, т.к. обращение к параметрам формы по имени параметра невозможна, все равно требуется Параметры.ИмяПараметра :-(
DevСуществует ли способ объявить в процедуре переменную уровня модуля формы (глобальную) без предварительного объявления#16 25.02.15 10:36
(15) Alexey_, в (10) пример того что хочется. Код процедуры н1 можно изменить, код процедуры н2 менять нельзя.
Я в принципе сам догадываюсь, что это скорей всего невозможно, но подключил всеобщий разум, может есть какой-то извернутый способ.
Конечная цель- консоль как в RUBY или CHROME для JScrypt. Т.е. команды вводятся построчно, контекст един.
У меня также мысль, создать процедуру, которая живет в бесконечном цикле и периодически читает строку и выполняет ее. Тогда все уже объявленные переменные будут в ней жить.
DevСуществует ли способ объявить в процедуре переменную уровня модуля формы (глобальную) без предварительного объявления#13 25.02.15 10:28
(9) Alex_E, написано же В ПРОЦЕДУРЕ. Без предварительного объявления. В (10) пример желаемого.
DevСуществует ли способ объявить в процедуре переменную уровня модуля формы (глобальную) без предварительного объявления#12 25.02.15 10:28
(11) Alexey_, Не получится.
Нужно чтобы потом обращение шло к динамически созданному чему-то по имени. :-(
DevСуществует ли способ объявить в процедуре переменную уровня модуля формы (глобальную) без предварительного объявления#10 25.02.15 10:24
(8) ZergKRSK, конечная цель
Код
Процедура н1()
  Выполнить("Перем1 = 100");
конецПроцедуры 

Процедура н2()
  Выполнить("Перем1 = Перем1 + 5");
  Сообщить(Строка(Перем1)); //в сообщении должно быть 105
конецПроцедуры