Имя: Пароль:
1C
1С v8
Обработка справочников договоров
,
0 KENT2007
 
10.07.12
13:06
Помогите сделать через запрос, третий день ничего не получается
1 rbcvg
 
10.07.12
13:06
чем помочь?
2 KENT2007
 
10.07.12
13:07
нужно выбрать первые 7 символов из наменования договора сделать группу и переместить договор в группу договора
3 butterbean
 
10.07.12
13:08
(2) и что не получается??
4 KENT2007
 
10.07.12
13:09
Процедура КнопкаВыполнитьНажатие(Кнопка)
   ВоборкаСправочников = Справочники.ДоговорыКонтрагентов.Выбрать();
Пока ВоборкаСправочников.Следующий() Цикл
          ИмяДог=ЛЕВ(ВоборкаСправочников.Наименование,7);
          ГруппаДог=Справочники.ДоговорыКонтрагентов.СоздатьГруппу();
          ГруппаДог.Наименование=ИмяДог;
          ГруппаДог.Владелец=ВоборкаСправочников.Родитель.Наименование;
          Если   ИмяДог = ГруппаДог тогда
          ГруппаДог.Родитель=  ГруппаДог ;
          иначе
       ГруппаДог.Записать();
       КонецЕсли        
Конеццикла;

КонецПроцедуры
5 KENT2007
 
10.07.12
13:10
вот тут не ясно

Если   ИмяДог = ГруппаДог тогда
      ГруппаДог.Родитель=  ГруппаДог ;
     иначе
как договор перенести в группу
6 rbcvg
 
10.07.12
13:10
что то подсказывает что
Если   ИмяДог = ГруппаДог тогда
не сработает
7 butterbean
 
10.07.12
13:10
>> Если   ИмяДог = ГруппаДог тогда
это шо за бред??
8 Любопытная
 
10.07.12
13:13
(4) Жуть какая.
Сначала запиши группу, потом в нее переноси элементы.
9 KENT2007
 
10.07.12
13:37
ГруппаДог.Владелец=ВоборкаСправочников.Владелец.Ссылка;
так верно?
10 KENT2007
 
10.07.12
13:44
ВоборкаСправочников = Справочники.ДоговорыКонтрагентов.Выбрать();
Пока ВоборкаСправочников.Следующий() Цикл
          ИмяДог=ЛЕВ(ВоборкаСправочников.Наименование,7);
          ГруппаДог=Справочники.ДоговорыКонтрагентов.СоздатьГруппу();
          ГруппаДог.Наименование=ИмяДог;
          ГруппаДог.Записать();
         
          ГруппаДог.Родитель=ВоборкаСправочников.Владелец;
11 KENT2007
 
10.07.12
13:44
{Форма.Форма.Форма(9)}: Ошибка при вызове метода контекста (Записать)
          ГруппаДог.Записать();
12 KENT2007
 
10.07.12
13:45
кто поможет
13 gosn1ck
 
10.07.12
13:45
(7) наверно они собак продают
14 KENT2007
 
10.07.12
13:46
хотДог
15 NickOmskiy2
 
10.07.12
13:50
почему воборка а не выборка :) ?
16 KENT2007
 
10.07.12
13:50
если договоров несколько как быть? еще цикл внурти делать?
17 KENT2007
 
10.07.12
13:51
(15) так вышло)
18 NickOmskiy2
 
10.07.12
13:51
проверку сделать
19 Любопытная
 
10.07.12
13:51
Трепанация черепа, имхо, поможет.
Ваще не поняла, что ТС пытается сделать
20 KENT2007
 
10.07.12
13:52
договор записать в группу с его именем
22 1C_OOLer
 
10.07.12
13:54
Круто) СоздатьГруппу в цикле)
24 Любопытная
 
10.07.12
13:55
(20) т.е. для каждого договора создать группу и его в эту группу запихать?
25 Infsams654
 
10.07.12
13:56
(22) во-во. Зачем группу для каждого элемента создавать? Проверь сначала ее наличие.
26 NickOmskiy2
 
10.07.12
13:57
может у него первые 7 - префикс какой-нить
27 KENT2007
 
10.07.12
13:57
(21) {Форма.Форма.Форма(10)}: Ошибка при вызове метода контекста (Записать)
              ГруппаДог.Записать();
по причине:

по причине:
Значение поля "Владелец" не заполнено или заполнено неверно

(23) потом группировака нужна по группам договоров что то типа реестра
28 1C_OOLer
 
10.07.12
13:58
Подозреваю что нужно сгруппировать элементы по 7 первым символам в названии. Так?
30 KENT2007
 
10.07.12
13:59
Так, есть контрагенты у которых договора из одной группы
31 KENT2007
 
10.07.12
14:00
и есть контр у которых договор в группе 1 и в группе 2
32 KENT2007
 
10.07.12
14:01
почему из (21) не дает записать
34 Любопытная
 
10.07.12
14:02
(32) Потому что владелец группы договоров не задан
36 artems
 
10.07.12
14:03
(32) ты чем почти 5 лет (после регистрации на форуме) занимался?
Читай СП двоечник.
39 KENT2007
 
10.07.12
14:07
(38) это будет однократно. групп штук 10
40 Любопытная
 
10.07.12
14:08
(39) у тебя для каждого договора создастся отдельная группа. Ты этого добиваешься?
43 1C_OOLer
 
10.07.12
14:11
и есть контр у которых договор в группе 1 и в группе 2

это как?
45 1C_OOLer
 
10.07.12
14:16
Лучше конечно выбирать договора по контрагенту, а не всем скопом.

Контрагент - Его договора - Ищем схожие - Группируем

Автор, так?
46 hhhh
 
10.07.12
14:24
(44) вот так может?

ГруппаДог = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(ИмяГруппыДог,,, ВоборкаСправочников.Владелец);
48 hhhh
 
10.07.12
14:39
(47) похоже, что у контрагента все договора попадают в одну группу. Но есть один контрагент, у которого две группы.
49 KENT2007
 
11.07.12
10:07
спасибо что помогли с обработкой
50 KENT2007
 
11.07.12
10:07
теперь почему то не группирует всю эту гадость
51 KENT2007
 
11.07.12
10:07
ВЫБРАТЬ
   ДоговорыКонтрагентов.Родитель КАК Родитель,
   ДоговорыКонтрагентов.Владелец КАК Владелец,
   ДоговорыКонтрагентов.Наименование,
   ДоговорыКонтрагентов.Номер КАК Номер,
   СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт) КАК СуммаОборотДт,
   СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотКт) КАК СуммаОборотКт,
   ВЫБОР
       КОГДА ДоговорыКонтрагентов.Номер = (ВЫРАЗИТЬ(ДоговорыКонтрагентов.Номер КАК СТРОКА(1)))
           ТОГДА 1
       КОГДА ДоговорыКонтрагентов.Номер = (ВЫРАЗИТЬ(ДоговорыКонтрагентов.Номер КАК СТРОКА(2)))
           ТОГДА 2
       КОГДА ДоговорыКонтрагентов.Номер = (ВЫРАЗИТЬ(ДоговорыКонтрагентов.Номер КАК СТРОКА(3)))
           ТОГДА 3
       КОГДА ДоговорыКонтрагентов.Номер = (ВЫРАЗИТЬ(ДоговорыКонтрагентов.Номер КАК СТРОКА(4)))
           ТОГДА 4
       КОГДА ДоговорыКонтрагентов.Номер = (ВЫРАЗИТЬ(ДоговорыКонтрагентов.Номер КАК СТРОКА(5)))
           ТОГДА 5
       КОГДА ДоговорыКонтрагентов.Номер = (ВЫРАЗИТЬ(ДоговорыКонтрагентов.Номер КАК СТРОКА(6)))
           ТОГДА 6
       КОГДА ДоговорыКонтрагентов.Номер = (ВЫРАЗИТЬ(ДоговорыКонтрагентов.Номер КАК СТРОКА(7)))
           ТОГДА 7
       КОГДА ДоговорыКонтрагентов.Номер = (ВЫРАЗИТЬ(ДоговорыКонтрагентов.Номер КАК СТРОКА(8)))
           ТОГДА 8
       КОГДА ДоговорыКонтрагентов.Номер = (ВЫРАЗИТЬ(ДоговорыКонтрагентов.Номер КАК СТРОКА(9)))
           ТОГДА 9
       КОГДА ДоговорыКонтрагентов.Номер = (ВЫРАЗИТЬ(ДоговорыКонтрагентов.Номер КАК СТРОКА(10)))
           ТОГДА 10
       КОГДА ДоговорыКонтрагентов.Номер = (ВЫРАЗИТЬ(ДоговорыКонтрагентов.Номер КАК СТРОКА(11)))
           ТОГДА 11
       КОГДА ДоговорыКонтрагентов.Номер = (ВЫРАЗИТЬ(ДоговорыКонтрагентов.Номер КАК СТРОКА(12)))
           ТОГДА 12
       КОГДА ДоговорыКонтрагентов.Номер = (ВЫРАЗИТЬ(ДоговорыКонтрагентов.Номер КАК СТРОКА(13)))
           ТОГДА 13
   КОНЕЦ КАК Поле1
ИЗ
   РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Начало, &Коенц, , , Счет В ИЕРАРХИИ (&Счет), , ) КАК ХозрасчетныйОстаткиИОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
       ПО ХозрасчетныйОстаткиИОбороты.Субконто2 = ДоговорыКонтрагентов.Ссылка

СГРУППИРОВАТЬ ПО
   ДоговорыКонтрагентов.Родитель,
   ДоговорыКонтрагентов.Владелец,
   ДоговорыКонтрагентов.Наименование,
   ДоговорыКонтрагентов.Номер

УПОРЯДОЧИТЬ ПО
   Родитель,
   Поле1,
   Номер
ИТОГИ
   СУММА(СуммаОборотДт),
   СУММА(СуммаОборотКт),
   СУММА(Поле1)
ПО
   ОБЩИЕ,
   Родитель,
   Владелец
52 KENT2007
 
11.07.12
10:09
нужно сгруппировать по каждой группе договор и отсортировать по номеру договора где номер это строка и может быть с номером "54-56", "58-62" ....
53 KENT2007
 
11.07.12
10:11
почему из группирует каждую группу договра отдельно