Имя: Пароль:
1C
1С v8
Движение номенклатуры ☑
0 Tanis
 
31.01.13
✎
12:51
Добрый день!
Подскажите, пожалуйста, откуда копать чтоб определить было -ли движение по номенклатуре?
1 Tanis
 
31.01.13
✎
12:52
Из Бух.регистра Обороты ДтКт?
2 Reset
 
31.01.13
✎
12:53
Логично предположить, что копать оттуда, где нужно пределить, было оно или нет
3 Tanis
 
31.01.13
✎
12:55
мне надо при изменении справочника номенклатуры задать условие, что если было в движении, то изменять нельзя
4 Godofsin
 
31.01.13
✎
12:56
(3) в каком движении было? танцевальном?
5 Classic
 
31.01.13
✎
12:57
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто
6 mikecool
 
31.01.13
✎
12:58
поиск ссылок на объект
7 Tanis
 
31.01.13
✎
13:03
что поиск ссылок на объект?
8 Wobland
 
31.01.13
✎
13:04
(3) это почему это нельзя?
9 mikecool
 
31.01.13
✎
13:05
(7) и там смотришь - где эта номенклатура использовалась
(8) +1
10 Tanis
 
31.01.13
✎
13:11
Так это из программы. А мне надо в события условие поставить.
11 Wobland
 
31.01.13
✎
13:28
(10) что такое события?
12 Tanis
 
31.01.13
✎
13:30
Подписка на события в конфигураторе. хочу в событие передзаписью поставить это условие.
13 Wobland
 
31.01.13
✎
13:32
(12) это тоже из программы, однако
14 Tanis
 
31.01.13
✎
13:33
в запросе из РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто
какие параметры лучше поставить или условие, чтоб обработка быстрее происходила?
15 Cube
 
31.01.13
✎
13:36
(14) Слушай, закрой конфигуратор и разберись в вопросе сначала. Я отменю проведение документа, зайду в номенклатуру изменю всё что захочу и перепроведу документ. Твоя проверка от меня не спасет!
Что ты городишь фигню какую-то? Опиши задачу, мы посоветуем.
16 zmaximka
 
31.01.13
✎
13:37
Посмотри как сделан контроль изменения единицы хранения остатков номенклатуры и сделай по аналогии
17 Tanis
 
31.01.13
✎
13:40
Почему не спасет. Если у тебя не будет прав сделать отмену проведения.
Задача сделать запрет на изменения номенклатуры (особенно если она в движении).
Просто если поставить запрет, что если уже был записан. То боюсь, что-нибудь забут указать в номенклатуре, потом уже не исправят.
18 НафНаф
 
31.01.13
✎
13:41
(15) логика проведения может измениться
19 НафНаф
 
31.01.13
✎
13:41
интересно, а какие данные менять нельзя?
20 Tanis
 
31.01.13
✎
13:44
все. т.е создали ном-ру (правильно) и больше ее не трогать.
21 Tanis
 
31.01.13
✎
14:39
ну так какие предложения?
22 Wobland
 
31.01.13
✎
14:52
1) отказаться от идеи;
2) Отказ=РольДоступна() и всё
23 Classic
 
31.01.13
✎
15:06
(21)
в (16) все доступно описано
24 Tanis
 
31.01.13
✎
15:51
Что-то по аналогии не получается
25 Tanis
 
31.01.13
✎
16:56
по такому совету не подходит!
26 Tanis
 
31.01.13
✎
17:09
Для УПП прокатило, а для бух пока не хочет.
27 hhhh
 
31.01.13
✎
17:15
ВЫБРАТЬ ПЕРВЫЕ 1
  Субконто1
ИЗ
  РегистрБухгалтерии.Хозрасчетный.Обороты(,,,, &Субконто)

за количество запятых не ручаюсь
28 Tanis
 
01.02.13
✎
14:13
Не стал открывать новую тему продолжу в этой. Нужна помощь в

Процедура ПриИзмененииРеализацииТиУПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
   
   ГруппаРеализации = Справочники.ГруппыПользователей.НайтиПоНаименованию("ГруппаРеализации");
   НайденнаяСтрока = ГруппаРеализации.ПользователиГруппы.Найти(ПараметрыСеанса.ТекущийПользователь,"Пользователь");
   
   Если (Источник.Проведен = Истина) И (НайденнаяСтрока = Неопределено) И НЕ РольДоступна("ПолныеПрава") Тогда
       Отказ = Истина;
       Сообщить("У Вас нет прав на запись: " + Источник + "  Документ был проведен! Изменения только группой реализации!");
   КонецЕсли;
   
КонецПроцедуры

Надо как-то дописать, что на обработки типа проверки последовательности или груп.перепровед это ограничение не срабатывало
29 eklmn
 
гуру
01.02.13
✎
14:22
защиту от дурака городить - только проблемы плодить
30 Tanis
 
01.02.13
✎
14:25
Мои проблемы их не интересуют. Им надо и все.
Ну так как-нибудь можно?
31 Tanis
 
01.02.13
✎
14:35
есть идеи?
32 Tanis
 
01.02.13
✎
14:55
это возможно или нет?
33 Tanis
 
01.02.13
✎
15:06
У всех уже выходной? Можно это сделать?
34 Tanis
 
01.02.13
✎
15:06
нужна помощь! Важно!
35 hhhh
 
01.02.13
✎
15:08
(32) ну где-то при открытии формы пишешь

ДополнительныеСвойства.Вставить("ЭтоНиФигаНеОбработкиТипаПроверкиПоследовательностиИлиГрупПерепровед", Истина);

а в этой процедуре пишешь

Процедура ПриИзмененииРеализацииТиУПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
   
Если Источник.ДополнительныеСвойства.Свойство("ЭтоНиФигаНеОбработкиТипаПроверкиПоследовательностиИлиГрупПерепровед") = Ложь ИЛИ Источник.ДополнительныеСвойства.ЭтоНиФигаНеОбработкиТипаПроверкиПоследовательностиИлиГрупПерепровед = Ложь Тогда

Возврат;

КонецЕсли;
36 Tanis
 
01.02.13
✎
15:26
Где я у обработки поставлю доп.свойство?!
37 Tanis
 
01.02.13
✎
16:13
Без дополнительных дописок в конфигураторе, только в процедуре для события, можно как-то сделать?
38 Classic
 
01.02.13
✎
16:22
(37)
В процедуре для события ты знаешь 5 вещей - то, что в параметрах и ПараметрыСеанса. В первых 4х никакой инфы по поводу откада открыта нет. Значит....
39 Reset
 
01.02.13
✎
16:23
(37)
"Надо как-то дописать"
"Без дополнительных дописок в конфигураторе"
huh?
40 Reset
 
01.02.13
✎
16:26
(37) Почему (35) не подходит-то?
41 Tanis
 
01.02.13
✎
16:32
Взять обработку "Управление последовательностями" Где я там поставлю доп. реквизит?
42 Tanis
 
01.02.13
✎
16:42
Решено:

И НЕ Обработки.УправлениеПоследовательностями.ПолучитьФорму().Открыта() = Истина
43 Tanis
 
01.02.13
✎
16:42
и без дополнительных дописок.
44 Reset
 
01.02.13
✎
16:42
(41) Там и не нужно. Прочитай внимательно (35)
45 Reset
 
01.02.13
✎
16:43
(42) А если на сервере проведение?
46 Tanis
 
01.02.13
✎
16:44
Там на основе доп.свойст. А у обработок их же нет.
47 Reset
 
01.02.13
✎
16:45
(46) У документОбъект есть
48 Tanis
 
01.02.13
✎
16:50
так а зачем мне док.объект? Если я ставлю запрет на док.реализации, чтоб его не могли менять. Все работает, но при запуске контроля проведения выскакивала ошибка, что не проводится.
Вот и надо было это обойти. т.е чтоб это ограничение не срабатывало при этой обработке.
от того что поставлю доку реализации это доп.свойство ничего не изменится
49 Tanis
 
01.02.13
✎
18:16
теперь для внешних надо. :-(
50 Tanis
 
04.02.13
✎
10:52
Как можно открыть открыть внешнюю обработку из конфигуратора? Запросом или просто командой.

Форма = Из запроса. (справочника Внешние обработки)
Форма.Ссылка.ПолучитьФорму.Открыть()

Открывается форма, где подключается внешняя обработка. А надо саму форму...
51 Tanis
 
04.02.13
✎
11:30
Очень надо. Есть такая возможность?
52 Privalov
 
04.02.13
✎
11:38
(50) "Как можно открыть открыть внешнюю обработку из конфигуратора? " Файл - открыть, не?
53 Classic
 
04.02.13
✎
11:57
(50)
Посмотри как реготчеты сделаны
54 Tanis
 
04.02.13
✎
12:50
через массив что-ли надо делать?
55 Tanis
 
04.02.13
✎
13:26
требуются еще наводки. я с массивами не очень. как это можно оформить? чтоб вытащить нужное?
56 Tanis
 
04.02.13
✎
14:01
Метаданные.Документы[ФайлВнешнегоОтчета].ОсновнаяФормаОбъекта.Имя

Это что касается регл.отчетов. А вот Метаданные внешней обработки куда ссылаются?
57 Tanis
 
04.02.13
✎
15:09
Подскажите, как получить эти метаданные внешней обработки?
58 GANR
 
04.02.13
✎
15:26
(0) )))) Метаданные регистров сведений, накопления, бухгалтерии и расчетов перебрать и, если где-то есть измерение, ресурс или реквизит с типом Номенклатура - сделать запрос )))).

Если Не Результат.Пустой() Тогда
Отказ = Истина
КонецЕсли;

И тогда, если хоть где-то будет движение - номенклатура не запишется. Вот только метаданные перебрать и построить запрос следует 1 раз за сеанс (общие модули с повторным использованием возвращаемого значения).
59 GANR
 
04.02.13
✎
15:29
Ну как Вам решение (58) )))) ?
60 GANR
 
04.02.13
✎
15:31
(6)(7) Не факт, что это именно движение, да и медленно.
61 Classic
 
04.02.13
✎
15:32
(59)
НайтиПоСсылкам проще
62 GANR
 
04.02.13
✎
15:34
(61) Долго будет работать... ОЧЕНЬ долго. (58) Быстрее, если составить запрос 1 раз за сеанс и только по регистрам.
63 Classic
 
04.02.13
✎
15:36
(62)
Я не писал "быстрее", я писал "проще" :)
На самом деле много зависит от того, на что запрет.
Т.е. сначала технически определиться, каких движений не должно быть при смене реквизита.
Но програмеров это обычно не интересует
64 Tanis
 
04.02.13
✎
16:29
Вопрос по номенклатуре, в УПП решился. По типу как подсказали, единица хранения остатков. В Бух пока не стал делать, так как на самом деле очень долгий перебор получается. А движения вообще. (участие в документах).

Сейчас вопрос, как получить внешнюю обработку. Открыть ее из конфигуратора. Точнее меня интересует путь к ней...
Чтоб условие написать
65 samozvanec
 
04.02.13
✎
16:51
(64) там у тебя справочник должен быть с дополнительными отчетами и обработками. вот там и посмотри
66 Tanis
 
04.02.13
✎
17:03
я там и смотрю. Но пока не получается открыть саму обработку, только форму где она подключается (или в данном случае открывается форма в которой можно ее изменить)
67 Tanis
 
11.02.13
✎
10:44
Добрый день!
Вопрос снова поднимается. Как получить открытие (запуск) внешней обработки кодом?
68 Wobland
 
11.02.13
✎
10:46
(67) как это связано с (0)?
69 Tanis
 
11.02.13
✎
11:03
никак, просто чтоб тему новую не заводить, в свое время здесь же задал этот вопрос. просто и то и то пишу в событиях, можно тему переименовать.
70 Tanis
 
11.02.13
✎
12:40
повторю вопрос, как кодом добраться до внешней обработки?
71 Wobland
 
11.02.13
✎
12:43
сделай новую. мне, к примеру, запросто бывает лениво длинные ветки читать. ВнешниеОбработкиМенеджер - слышал слово?
72 Tanis
 
11.02.13
✎
13:08
Не совсем. Что за менеджер?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший