Имя: Пароль:
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
Не совсем. Что за менеджер?