Имя: Пароль:
1C
 
контроль табличной части при проведении
0 falselight
 
26.10.16
06:44
При проведении документа нужно исключать из тч строки типа
Номенклатура 1 Сумма 10
Номенклатура 1 Сумма 10
Строки же типа
Номенклатура 1 Сумма 10
Номенклатура 1 Сумма 15
Считаются нормальными. Как это лучше сделать?
1 falselight
 
26.10.16
06:49
При проведении выдается сообщение, - "Запись с такими ключевыми полями уже существует".
При вводе
Номенклатура 1 Сумма 11
Номенклатура 1 Сумма 22

где что не так задано?
2 falselight
 
26.10.16
06:50
Я думал что можно будет вводить
Номенклатура 1 Сумма любая

а он не дает, как это изменить?
3 Mauser
 
26.10.16
06:58
(0) добавь в сумму первой строки рубль, а из суммы второй строки вычти
это контроль такой специальный
4 Рэйв
 
26.10.16
07:00
(0)>>Запись с такими ключевыми полями уже существует

Это смотря в ккой РС пишет и какие у тебя там измерения
5 falselight
 
26.10.16
07:07
(3) не понял о чем вы
(4) регистр был непериодический, устранил это сделав ему периодичность в пределах секунды.

Остается сделать контроль (0)
6 Рэйв
 
26.10.16
07:09
(5)А что учитывает регистр?
7 falselight
 
26.10.16
07:10
Хотя нет, все равно (1) ошибка есть.
(4) Регистр периодический, в пределах одной секунды. Подчинен регистратору. Измерения:
Сотрудник    Справочник.Сотрудники, Справочник.Профессии
Номенклатура Справочник.Номенклатура
8 falselight
 
26.10.16
07:11
(6) Регистр учитывает данные одноименного документа.
В него заносятся данные табличной части документа + значение реквизита из шапки документа.
9 falselight
 
26.10.16
07:12
так делаю движения:

    Движения.ПределыНачислений.Записывать = Истина;
    Для Каждого ТекСтрокаПределы Из Пределы Цикл
        Движение                 = Движения.ПределыНачислений.Добавить();
        Движение.Период         = ТекущаяДата();
        Движение.Сотрудник         = РаботникПрофессия;
        Движение.Номенклатура   = ТекСтрокаПределы.Номенклатура;
        Движение.СтатусДействия = ТекСтрокаПределы.СтатусДействия;
        Движение.Сумма             = ТекСтрокаПределы.Сумма;
        Движение.Показатель     = ТекСтрокаПределы.Показатель;
    КонецЦикла;
10 falselight
 
26.10.16
07:16
То есть никаким образом не позволяется ввести запись в регистр с повторяющимися измерениями???? А если нужно ввести c одинаковыми измерениями в одном документе но с разными суммами, как это сделать?
11 Adilgeriy
 
26.10.16
07:21
никак исходя из твоих условий. что должен делать твой регистр?
12 catena
 
26.10.16
07:47
(10)Суммировать и записывать одной строкой?
13 falselight
 
26.10.16
08:12
(11,10) В него должны по всей видимости помещаться данные из документа.
В строке регистра данные табличной части документа + значение реквизита из шапки документа.
При этом, должны исключаться записи, -
Номенклатура 1 Сумма 10
Номенклатура 1 Сумма 10
и позволяться вводиться записи типа
Номенклатура 1 Сумма 10
Номенклатура 1 Сумма 15

Но вижу что записи с одинаковой номенклатурой вообще нельзя ввести на уровне платформы. Так же как и более одной записи с пустым значением номенклатуры.
14 falselight
 
26.10.16
08:13
(13) (11 ,10) -> (11, 12)
15 Lexey_
 
26.10.16
08:17
(10) "То есть никаким образом не позволяется ввести запись в регистр с повторяющимися измерениями???" Ливингстар открывает для себя регистры сведений. Если что, в этом суть регистра сведений
16 catena
 
26.10.16
08:29
(13)А если тебе удастся записать одинаковую номенклатуру/сотрудника, что ты потом с ними собираешься делать?
17 falselight
 
26.10.16
09:15
(15) мне поставили задание специалисты
начал делать, задаю вопросы, мне говорят
что то я много вопросов задаю!!!!!!!!!!!
Я привык что тз ставят специалисты и там нет воды.
Воспринимаю его буквально. По этому такие несуразности!!!!
Не знаю почему такие тз!!!!!! Где написано делать то чего
в принципе платформа не даст!
18 Lexey_
 
26.10.16
09:33
(16) (16) сейчас выпишем ему костыли и проверим.
(13) добавь измерение регистра с типом УникальныйИдентификатор и заполняй его, тогда сможешь вводить одинаковые значения остальных измерений
(17) делай)
19 catena
 
26.10.16
09:43
(17)Ну, мы исходного ТЗ не видим же, чтобы судить о твоих специалистах. Только твои попытки записать дубль в регистр.

А ты не будь глупым дятлом, ты сперва подумай. Чтобы делать качественно, нужно разбираться в теме в целом. В зависимости от того, как этот регистр будет ПОТОМ использоваться, будут разные решения СЕЙЧАС.
20 Serg_1960
 
26.10.16
09:48
(17) Тебе поставили задачу, в которой нужно записать строки табличной части в регистр. Это банальное задание. Специалист не задаёт лишних вопросов специалистам - он просто реализует уникальность записей по измерениям регистра перед записью. Считай, что это бонус "по умолчанию" к заданию :)

PS: запиши ТЧ в ТЗ, сверни по измерениям регистра и выгрузи.
21 falselight
 
26.10.16
10:20
(19) так вот понимание и приходит со временем
что тз отстой!!!!!
(20) Ок, вот в результате таких дискуссий и приходят возможные решения!
22 falselight
 
26.10.16
10:23
(20) Мне было сказано что вот это нельзя
Номенклатура 1 Сумма 10
Номенклатура 1 Сумма 10
а это можно
Номенклатура 1 Сумма 10
Номенклатура 1 Сумма 15

получается если свернуться записи
Номенклатура 1 Сумма 10
Номенклатура 1 Сумма 10
то это будет ошибкой ввода!!!! Нужно не давать проводить документ, если в тч есть такие записи, подобные, с одинаковой суммой.
23 Рэйв
 
26.10.16
10:55
&НаСервере

тБуфер=Объект.ТабЧасть.Выгрузить(,"Номенклатура,Сумма");
тБуфер.Колонки.Добавить("Кол");
тБуфер.ЗаполнитьЗначения(1,"Кол");

тБуфер.Свернуть("Номенклатура,Сумма","Кол");
Для Каждого Стр Из тБуфер цикл
    Если Стр.Кол>1 Тогда
        Сообщить("Все в сад, товарищи!");
        Прервать;
    КонецЕсли;

КонецЦикла;
24 falselight
 
26.10.16
12:33
(23) супер!!!
25 piter3
 
26.10.16
12:34
(23) А сообщать кому &НаСервере
26 falselight
 
26.10.16
12:34
(24+) Продуманно! И хорошо спроектированно!!!
27 falselight
 
26.10.16
12:34
(25) ну сообщить выведется и все
28 piter3
 
26.10.16
12:35
(27):))))
29 Рэйв
 
26.10.16
12:36
(25)(28)пользоватлю:-). В последних версиях доступно на сервере.Так что зря смеешься
30 Рэйв
 
26.10.16
12:38
(26)Да это практически стандартный финт ушами:-) Тоже мне проектирование
31 piter3
 
26.10.16
12:44
(29) СообщениеПользователю ?
32 Рэйв
 
26.10.16
12:53
33 VladZ
 
26.10.16
12:57
(2) Давай ТЗ полностью.
34 falselight
 
26.10.16
13:16
(33) да от куда оно, общие формулировки.
(25) ну а если для сообщить вызывать процедуру на клиенте?
35 falselight
 
26.10.16
13:47
(23) на сервере так же Объект не доступен метод
2 + 2 = 3.9999999999999999999999999999999...