|
v7: дублирование Инн | ☑ | ||
---|---|---|---|---|
0
Pechka
27.08.12
✎
13:07
|
Здравствуйте, нашла обработку по поиску одинаковых ИНН в ТиС 7.7,но когда формирую отчет,выдает ошибку: Табл.ИНН = Табл.Юр.ИНН;
{C:\DOCUMENTS AND SETTINGS\ADM\РАБОЧИЙ СТОЛ\ПОИСКОДИННТОРГ.ERT(25)}: Поле агрегатного объекта не обнаружено (ИНН). Помогите, пожалуйста доработать отчет Код программы: Процедура Сформировать() Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица"); Таб.ВывестиСекцию("Шапка"); // Запрос по справочнику ТекстЗапроса = " |Контрагент = Справочник.Контрагенты.ТекущийЭлемент; |Юр = Справочник.Контрагенты.ЮрФизЛицо; |Группировка Контрагент Без Групп; |Группировка Юр; |"; Запрос = СоздатьОбъект("Запрос"); Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Табл = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(Табл,, 0); Табл.НоваяКолонка("ИНН"); Табл.ВыбратьСтроки(); Пока Табл.ПолучитьСтроку() = 1 Цикл Табл.ИНН = Табл.Юр.ИНН; КонецЦикла; Табл.НоваяСтрока(); Табл.Инн = ""; Табл.НоваяСтрока(); Табл.Инн = "999999"; //СчетчикЦикла = 0; //Для СчетчикЦикла = 1 по Табл.КоличествоКолонок() Цикл // Табл.ПолучитьПараметрыКолонки(<Колонка>,<Тип>,<Дл,,Стр); //КонецЦикла; Табл.Сортировать("ИНН"); Табл.ВыбратьСтроки(); ИНН = ""; Номер = 0; Номер1 = 0; Пока Табл.ПолучитьСтроку() = 1 Цикл Номер = Номер + 1; Если (Номер = 1) Или (Номер = Табл.КоличествоСтрок()) Тогда Продолжить; КонецЕсли; Если СокрЛП(Табл.Инн) = "" Тогда Продолжить; КонецЕсли; //Сообщить(Ном); Если (СокрЛП(Табл.Инн) <>СокрЛП(Табл.ПолучитьЗначение(Номер - 1,"ИНН"))) И (СокрЛП(Табл.Инн) <> СокрЛП(Табл.ПолучитьЗначение(Номер + 1,"ИНН"))) Тогда Продолжить; КонецЕсли; Если СокрЛП(Табл.Инн) <> СокрЛП(Табл.ПолучитьЗначение(Номер - 1,"ИНН")) Тогда Таб.ВывестиСекцию("СтрокаР"); КонецЕсли; Номер1 = Номер1 + 1; ПечНом = Номер1; ПечКон = Табл.Контрагент; Расш = Табл.Контрагент; ПечИНН = Табл.ИНН; Таб.ВывестиСекцию("Строка"); КонецЦикла; Таб.ВывестиСЕкцию("Подвал"); Таб.ТолькоПросмотр(1); Таб.Опции(1, 0); Таб.Показать("Поиск контрагентов с одинаковыми ИНН"); КонецПроцедуры |
|||
1
Sh1ko
27.08.12
✎
13:09
|
фото надо
|
|||
2
Zmich
27.08.12
✎
13:11
|
Табл.ВыбратьСтроки();
Пока Табл.ПолучитьСтроку() = 1 Цикл Если ПустоеЗначение(Табл.Юр) = 0 Тогда Табл.ИНН = Табл.Юр.ИНН; КонецЕсли; КонецЦикла; |
|||
3
КонецЦикла
27.08.12
✎
13:13
|
В запросе не судьба получить?
Далее как вариант: Потом добавить в таблицу счетчик и свернуть по ИНН с суммой по счетчику Там где значение будет более 1 (отсортировать) и будут дубли Типа аналог having count :) |
|||
4
M0narch
27.08.12
✎
13:15
|
Табл.ВыбратьСтроки();
Пока Табл.ПолучитьСтроку() = 1 Цикл Если ПустоеЗначение(Табл.Юр) = 0 Тогда Табл.ИНН = Табл.Контрагент.ИНН; КонецЕсли; КонецЦикла; |
|||
5
Pechka
27.08.12
✎
13:21
|
добавила так :
Табл.ВыбратьСтроки(); Пока Табл.ПолучитьСтроку() = 1 Цикл Если ПустоеЗначение(Табл.Юр) = 0 Тогда Табл.ИНН = Табл.Контрагент.ИНН; КонецЕсли; КонецЦикла; и так пробовала: Табл.ВыбратьСтроки(); Пока Табл.ПолучитьСтроку() = 1 Цикл Если ПустоеЗначение(Табл.Юр) = 0 Тогда Табл.ИНН = Табл.Юр.ИНН; КонецЕсли; КонецЦикла; выдает ошибку : Табл.ИНН = Табл.Юр.ИНН; {C:\DOCUMENTS AND SETTINGS\ADM\РАБОЧИЙ СТОЛ\ПОИСКОДИННТОРГ.ERT(26)}: Поле агрегатного объекта не обнаружено (ИНН) |
|||
6
M0narch
27.08.12
✎
13:25
|
Табл.ВыбратьСтроки();
Пока Табл.ПолучитьСтроку() = 1 Цикл Если Табл.Юр = Перечисление.ЮрФизЛицо.Юр Тогда Табл.ИНН = Табл.Контрагент.ИНН; КонецЕсли; КонецЦикла; как то так |
|||
7
Rie
27.08.12
✎
13:26
|
(0) И откуда у Табл взялась колонка ИНН (после того, как в неё выгрузили результат запроса)?
|
|||
8
miki
27.08.12
✎
13:27
|
(7)
>>Табл.НоваяКолонка("ИНН"); |
|||
9
CepeLLlka
27.08.12
✎
13:28
|
Кать, ты такая же горячая как и твой ник?
|
|||
10
miki
27.08.12
✎
13:29
|
+(3)
Добавить переменную в запрос, убрать группировку (да и переменную) по контрагенту (одно ЮФЛ вполне может быть у нескольких контрагентов). |
|||
11
Pechka
27.08.12
✎
13:33
|
M0narch, написала как вы и сказали,выдает ошибку все равно:
Если Табл.Юр = Перечисление.ЮрФизЛицо.Юр Тогда {C:\DOCUMENTS AND SETTINGS\ADM\РАБОЧИЙ СТОЛ\ПОИСКОДИННТОРГ.ERT(25)}: Поле агрегатного объекта не обнаружено (ЮрФизЛицо) |
|||
12
Rie
27.08.12
✎
13:40
|
Следующее непонимание с моей стороны. В типовых у справочника Контрагенты ЮрФизЛицо - это справочник. На кой его с перечислением сравнивать?
|
|||
13
Rie
27.08.12
✎
13:40
|
+(12) Да и перечисления ЮрФизЛицо в типовых - что-то не припомню...
|
|||
14
aka AMIGO
27.08.12
✎
13:41
|
(0) всё путём, работает твой отчет в ТИС.
что делала с конфигурацией? ничего не меняла в справочниках? |
|||
15
Pechka
27.08.12
✎
13:42
|
записала:
Табл = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(Табл,, 0); Табл.НоваяКолонка("ИНН"); Табл.ВыбратьСтроки(); Пока Табл.ПолучитьСтроку() = 1 Цикл Если ПустоеЗначение(Табл.Юр) = 0 Тогда Табл.ИНН = Табл.Юр.ИНН; КонецЕсли; КонецЦикла; добавила новую колонку ИНН, теперь выходят все контрагенты, которые дублируются и нет |
|||
16
Pechka
27.08.12
✎
13:43
|
в справочниках ничего не меняла
|
|||
17
floody
27.08.12
✎
13:44
|
Жаль что традицию с фото отменили.
|
|||
18
M0narch
27.08.12
✎
13:45
|
(13) смотрю украинскую конфу, там есть ВидКонтрагента, с ЮрФизЛицо попутал
|
|||
19
Pechka
27.08.12
✎
13:50
|
что делать???? :(((((
|
|||
20
aka AMIGO
27.08.12
✎
13:51
|
(19)мдшник в зипе можешь выложить?
|
|||
21
aka AMIGO
27.08.12
✎
13:51
|
Вот сработал код в ТиСе, намеренно ввел два одинаковых инн
Ры 8 8 6165127970 9 6165127970 |
|||
22
Pechka
27.08.12
✎
13:54
|
у меня не срабатывает((( как выложить то,"прикрепить файлы" нет же
|
|||
23
Pechka
27.08.12
✎
13:55
|
почту напишите свою,отправлю
|
|||
24
miki
27.08.12
✎
13:56
|
кошелек тоже выложи, пусть и з/п отправляет
|
|||
25
aka AMIGO
27.08.12
✎
13:56
|
(22) valeri35(GAFF)bk.ru
|
|||
26
aka AMIGO
27.08.12
✎
13:56
|
(24) :)
|
|||
27
aka AMIGO
27.08.12
✎
14:02
|
(23)пароль нужен для открытия
|
|||
28
aka AMIGO
27.08.12
✎
14:03
|
+27 тоже в мыло, естественно..
|
|||
29
Oleg_Kag
27.08.12
✎
14:23
|
самое главное ни кто ошибки в цикле не заметил :)
в условиях Если |
|||
30
Pechka
27.08.12
✎
14:24
|
какая ошибка??
|
|||
31
aka AMIGO
27.08.12
✎
14:27
|
(0) в конфигурации версии923 отсутствует справочник ЮрФизЛица..
Есть только ЮрЛица и ФизЛица. |
|||
32
Pechka
27.08.12
✎
14:29
|
и что теперь делать?(
|
|||
33
chief accountant
27.08.12
✎
14:30
|
(32) написать свою обработку
|
|||
34
aka AMIGO
27.08.12
✎
14:32
|
(32)для контрагентов определены 2 реквизита - ЮрЛицо, ФизЛицо.
так что возможен вариант |Юр = Справочник.Контрагенты.ЮрЛицо; |Физ = Справочник.Контрагенты.ФизЛицо; Определить в при присворении Табл.ИНН вид контрагента, и присвоить соответствующее значение |
|||
35
aka AMIGO
27.08.12
✎
14:59
|
+34-му отбой! это в другой версии конфигурации!
|
|||
36
miki
27.08.12
✎
15:03
|
(35)ни в какой не было. Там неопределенный справочник, а значения у него или ФЛ или ЮЛ.
|
|||
37
aka AMIGO
27.08.12
✎
15:05
|
(36)да, я уже ей это написал в письме.
|
|||
38
aka AMIGO
27.08.12
✎
15:07
|
в общем и целом - отчет должен работать нормально..
теперь уж думаю, что в БД есть ошибка в одном из контрагентов, у него не присвоен статус (вид) ЮЛ/ФЛ |
|||
39
miki
27.08.12
✎
15:08
|
(38)значит обернуть в Попытку/Исключение
|
|||
40
aka AMIGO
27.08.12
✎
15:13
|
(39)точно!
Пока Табл.ПолучитьСтроку() = 1 Цикл Попытка Табл.ИНН = Табл.Юр.ИНН; Исключение Сообщить(""+Табл.Контрагент+" пустой статус ФЛ/ЮЛ!"); КонецПопытки; КонецЦикла; |
|||
41
Pechka
27.08.12
✎
15:17
|
все равно выходит та же большая таблица,со всеми контрагентами, и в окошке сообщить : ФС-Договоры пустой статус ФЛ/ЮЛ!
ФС-Договоры пустой статус ФЛ/ЮЛ! |
|||
42
miki
27.08.12
✎
15:20
|
"ФС-Договоры" это битые ссылки кто-то восстанавливал...
|
|||
43
aka AMIGO
27.08.12
✎
15:29
|
(41)а запускала тот код, что в первом посте?
я-ж написал: он у меня работает.. Только дополнительно эта Попытка.. |
|||
44
aka AMIGO
27.08.12
✎
15:32
|
Посмотрел распечатку: всё правильно выводит отчет! В справочнике Контрагенты задублированы.
|
|||
45
Pechka
27.08.12
✎
15:33
|
все равно,также выводит
|
|||
46
aka AMIGO
27.08.12
✎
15:34
|
+44 и выводятся попарно
604 КММ 7735566910/773501001 605 я КММ 7735566910/773501001 а кое-где еще и по 3 штуки: 568 ФБУЗпоЖДТ((с/ф) 7701351634/164502001 569 яяФГУЗпоЖДТ((с/ф)-обновление11г 7701351634/164502001 570 яяФГУЗпоЖДТ (буг)-обновление11г 7701351634/164502001 |
|||
47
aka AMIGO
27.08.12
✎
15:34
|
(45)у них совпадает ИНН! потому и выводятся
|
|||
48
Mikeware
27.08.12
✎
15:34
|
(46) забей. год рождения - он свое дело знает крепко...
|
|||
49
Pechka
27.08.12
✎
15:49
|
спасибо,получилось:)
|
|||
50
aka AMIGO
27.08.12
✎
15:50
|
(49) ну, вот и хорошо :)
(48) :)) |
|||
51
Oleg_Kag
27.08.12
✎
15:54
|
Гхм...
Процедура Сформировать() Перем Запрос, ТекстЗапроса, Таб; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |ТекущийЭлемент = Справочник.Контрагенты.ТекущийЭлемент; |ВидКонтрагента = Справочник.Контрагенты.ВидКонтрагента; |ИНН = Справочник.Контрагенты.ИНН; |Группировка ТекущийЭлемент упорядочить по ТекущийЭлемент.ИНН без групп; |Условие(ПустоеЗначение(ИНН)=0); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; // Подготовка к заполнению выходных форм данными запроса Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); //первый элемент ИННИщем=""; Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей ТекущийЭлемент Если ИННИщем=СокрЛП(Запрос.ИНН) Тогда Таб.ВывестиСекцию("ТекущийЭлемент"); //тут выводите в таблицу данные Иначе ИННИщем=СокрЛП(Запрос.ИНН); КонецЕсли; КонецЦикла; // Вывод заполненной формы Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать", ""); КонецПроцедуры |
|||
52
aka AMIGO
27.08.12
✎
15:57
|
код, видимо для другой конфигурации,
вот это: |ИНН = Справочник.Контрагенты.ИНН; в ТиС не сработает, нет реквизита ИНН в спр.контрагентов, он в двух других |
|||
53
aka AMIGO
27.08.12
✎
16:00
|
+52 а код-то короче :) хорошо написано :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |