Отбор только по ИНН

1. AndrewUs 11 28.02.14 10:12 Сейчас в теме
Здравствуйте. Имеется конфигурация 1С Бухгалтерский учет 7.7 с релизом 7.70.570 (релиз в конкретном случае не так важен), а также имеется другая программа, используемая в аптеке. Наладили выгрузку из этой программы в 1С Бухгалтерию 7.7, но есть небольшая трудность. Система работы такая: из аптекарской программы (будем её так называть) выгружается файл с расширением *.ttx. Потом в 1С БУ 7.7, с помощью созданной обработки, загружается информация из этого файла. Но при загрузке появляется проблема, контрагенты начинают дублироваться. Опытным путем заметили, что, если у контрагента убрать кпп, то дублирования не происходит. Если необходимо (а скорее всего необходимо) скину обработку или код обработки, потому что сам не могу никак додуматься, где надо исправить, чтобы данной проблемы не было. Заранее спасибо за любую полезную информацию.
По теме из базы знаний
Найденные решения
48. Jill 17 11.03.14 15:34 Сейчас в теме
(46) AndrewUs, тьфу, елки, увидел "Если Дог.НайтиПоНаименованию("Основной договор",0,1)=0 Тогда
"...

В функции НайтиДоговор (151 строка) поменяйте на "Если Дог.НайтиПоНаименованию("Основной договор",1,1)=0 Тогда" и будет счастье. :)
AndrewUs; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
26. Jill 17 03.03.14 15:07 Сейчас в теме
(1) AndrewUs,
Функция ВернутьИНН(ТекИНН)
	Перем ИНН, НомНайдСим;
		ИНН=СокрЛП(ТекИНН);
		НомНайдСим = Найти(ИНН,"/");
		Если НомНайдСим = 0 Тогда
			НомНайдСим = Найти(ИНН,"\");
		КонецЕсли;
		
		Если НомНайдСим <> 0 Тогда			
			ИНН	= СокрЛП(Лев(ИНН,НомНайдСим - 1));
		КонецЕсли;                                
		
		Возврат ИНН;
КонецФункции
Показать


Добавляете ее над функцией "НайтиКонтрагента(ИмяСубк,СтрокаПоиска,СтрокаИНН" и строку "|Условие (СокрЛП(ИНН)=СокрЛП(СтрокаИНН))";" в НайтиКонтрагента меняете на "|Условие (ВернутьИНН(СтрокаИНН)=ВернутьИНН(ИНН))";".
Тестируете на пробной базе (копия).
AndrewUs; +1 Ответить
2. Irken_1 28.02.14 10:25 Сейчас в теме
Обычно идентификация контрагента при выгрузках-загрузках 1с-ных идет по ИНН+КПП
В бух 77 один реквизит где ИНН/КПП в куче.
Выкладывайте свою обработку или текст, попробуем помочь
3. AndrewUs 11 28.02.14 10:29 Сейчас в теме
(2) Irken_1, Выкладываю обработку.
Прикрепленные файлы:
Загрузка.ert
4. Irken_1 28.02.14 10:43 Сейчас в теме
Можете выслать файл выгрузки хотя бы по одному контрагенту?
и что в карточке этого контрагента в той программе откуда идет выгрузка?
Потому что в обработке идет чисто сравнение двух реквизитов в бух и что пришло.
Надо посмотреть что приходит из источника? может там тоже кпп добавлен но не через / поэтому сравнение неверное и добавляется новый контрагент.
Ну или сами в отладчике можете посмотреть по одному контрагенту Функция НайтиКонтрагента(....) что пришло в 1с бух и что реально в карточке по этому контрагнету.
5. AndrewUs 11 28.02.14 10:50 Сейчас в теме
(4) Irken_1, Вам необходимо выслать файл, из которого загружаются данные ... верно?
Вот файл, за январь 2014.
Прикрепленные файлы:
trans1.ttx
6. Natali_77 28.02.14 10:50 Сейчас в теме
А если просто при сравнении искать вхождение в строку данного ИНН? Тогда даже если дальше будет стоять КПП, то всё равно контрагент не задвоится.
9. AndrewUs 11 28.02.14 11:08 Сейчас в теме
(6) Natali_77, Вот это мне как раз и нужно, но как это сделать ... я в 7.7 не силен ...
20. Pari 28.02.14 15:58 Сейчас в теме
(9) AndrewUs, может приведете несколько примеров соответствия, какой ИНН указан в файле выгрузки и какой у соответствующего контрагента в справочнике 1С (на всякий случай, файл выгрузки читается например Блокнотом). В файле каждая строка состоит из разделенных запятыми полей. Предпоследнее поле - ИНН (в том виде, в котором он выгружается из внешней программы), последнее - наименование контрагента (тоже из внешней программы).
Соответствие:
Контрагент: Протек 42 /Курск
ИНН в файле: 7724053916\1
ИНН в 1С: ??????????????
Не видя базы, но хотя бы видя примеры, можно будет думать, как сделать "отсечение символов" и поможет ли это.
22. AndrewUs 11 03.03.14 10:04 Сейчас в теме
(20) Pari, ИНН в 1С 7724053916\463202001
7. Irken_1 28.02.14 11:05 Сейчас в теме
то что прислали в файле это вы уже во внешней программе убрали кпп?
8. AndrewUs 11 28.02.14 11:07 Сейчас в теме
(7) Irken_1, т.е. нужно во внешней программе проставить у контагентов кпп?
10. Irken_1 28.02.14 11:12 Сейчас в теме
добавьте по одному контрагенту кпп и вышлите файл выгрузки
11. Irken_1 28.02.14 11:13 Сейчас в теме
потому что надо понять как выгрузка складывает инн и кпп в файле.
12. AndrewUs 11 28.02.14 11:17 Сейчас в теме
(11) Irken_1, С этим сложнее, программы этой сейчас у меня нет, буду связываться с человеком, чтобы это сделал и выгрузил файл.
14. AndrewUs 11 28.02.14 11:29 Сейчас в теме
(11) Irken_1, А вот такой момент, что нужно добавить в имеющийся код, что бы было не важно есть у контрагента кпп в 1с или нет? Мне говорили, что можно сделать отсечение символов, но более подробной информацией делиться не пожелали.
13. Irken_1 28.02.14 11:25 Сейчас в теме
Нашла в вашем файле контрагента, посмотрите что в карточке вашей внешней программы "Протек 42 /Курск" это что? - "7724053916\1" это вроде как информация инн, а после слэша это кпп?
15. AndrewUs 11 28.02.14 11:30 Сейчас в теме
(13) Irken_1, Видимо в той программе и проставили это значение "\1", скорее всего это и есть кпп.
16. Irken_1 28.02.14 11:41 Сейчас в теме
Андрей, вобщем в вашу задачку можно решить это точно.
Удалять кпп из внешней программы скорей всего некорректно, вы ведь первичку выдаете из нее, а не из 1с?
Вобщем надо понять как инн и кпп сливаются в один реквизит из вашей внешней программы при выгрузке. И далее смотреть как инн вместе с кпп заполнены в 1с.
17. AndrewUs 11 28.02.14 12:14 Сейчас в теме
(16) Irken_1, Удалять кпп из внешней программы никто и не собирался. Да первичка во внешней программе. А инн и кпп в 1с заполняются через косую линию, т.е. ИНН\КПП ...
18. Timesoft 271 28.02.14 15:25 Сейчас в теме
(17) Но "\1" - это никак не КПП. КПП - 9 симолов.
Что значит "начинают дублироваться" ? У дублей ИНН\КПП совпадает полностью ?
Возможно у Вас в аптекарской программе заведены несколько например обособленных подразделения (ИНН одинаковый, КПП разные) одного контрагента.
Тогда надо разобраться - Вы продажу кому производите, договор у Вас с кем ? Нескольким подразделениям или всё-таки некоему "головному", а остальные фактически - только в роли грузополучателя ? В зависимости от этого в бухгалтерской\налоговой отчетности должны фигурировать либо один КПП, либо все.
Вариант с "\1" наводит ещё на мысль, что возможно менеджеры в аптекарской программе сознательно "размножили" контрагентов через \1 \2 \3 , чтобы отделить например разные торговые точки - для своего удобства
19. Irken_1 28.02.14 15:34 Сейчас в теме
в этой обработке по загрузке запрос выборка из справочника с условием СокрЛП(ИНН) - из справочника = СокрЛП(ИННВнещнийИсточник)
Вопрос по какому принципу и что сливается в переменную ИНН из аптеки. То что выкладывалось вроде как без КПП, но контрагенты со слэшом это что?
Ждем ответа чтобы что-то уяснить как вырулить с загрузкой.
21. AndrewUs 11 03.03.14 10:01 Сейчас в теме
(19) Irken_1, Сам жду ответа от программистов той программы ... как будет внесена некоторая ясность обязательно отпишу.
23. AndrewUs 11 03.03.14 10:46 Сейчас в теме
А если не брать в рассмотрение данного контрагента "Протек 42 /Курск", взять, например, "Фарма /Орел" где нет в ИНН этого слеша?
24. Irken_1 03.03.14 11:08 Сейчас в теме
Нет ИНН в 1с бух или в аптеке?
25. AndrewUs 11 03.03.14 12:29 Сейчас в теме
(24) Irken_1, Нет, вы не поняли, ИНН есть у всех, я говорил про другого контрагента, у которго нет в ИНН слеша, потому что, возможно, это какая-то опечатка в аптекарской программе. И будем рассматривать другого, у которого четко прописан ИНН.
27. Jill 17 03.03.14 15:19 Сейчас в теме
Но это может работать только в том случае, если строка получаемая из программы-экспортера форматируется аналогично 1с.
Т.е. ИНН\КПП или ИНН\билиберда ИНН/либилерда. При наличии сторонних (прочих не числовых) символов в строке будут ошибки (все это тоже решаемо, но нужно знать ньюансы и не лениться :)).
28. AndrewUs 11 03.03.14 16:55 Сейчас в теме
(27) Jill, А, если, в 1С указан ИНН\КПП, а в программе только ИНН и наоборот?
29. Jill 17 03.03.14 18:14 Сейчас в теме
(28) AndrewUs, не важно.
Функция ВернутьИНН возвращает только ИНН, или, точнее сказать, часть строки ТекИНН до слеша, либо, если слеша нет, строку целиком (ну и плюс еще лишние пробелы удаляет).
30. AndrewUs 11 05.03.14 12:17 Сейчас в теме
(29) Jill, Функция отличная, спасибо, но в итоге, контрагент продублировался ... нигде не ошибся, проверил несколько раз ...
31. Jill 17 05.03.14 14:06 Сейчас в теме
(30) AndrewUs, а какой ИНН у контрагента в апт. системе?
32. AndrewUs 11 05.03.14 14:27 Сейчас в теме
(31) Jill, ИНН полностью совпадает, но, названия у них разные ... и в 1с кпп еще прописан.
33. Jill 17 05.03.14 16:39 Сейчас в теме
(32) AndrewUs, хмм... Интересно. Ну тут проще под отладчиком глянуть, чем теоретизировать.
Нужен загружаемый файл. И сознаться которые из контрагентов продублировались.
34. AndrewUs 11 05.03.14 18:04 Сейчас в теме
(33) Jill, В третьем и пятом моих сообщениях были файлы, которые можно скачать. Например, продублировался АМП/Воронеж, просто я по этому контрагенту проверяю. Просто, возможно, а скорее всего ошибка, точнее, упущен момент в самой обработке. Хотя, неизвествно, что там не так ... Спасибо, что пытаетесь помочь.
35. Jill 17 05.03.14 19:14 Сейчас в теме
Создал в чистой базе контрагента "ТестКонтр" с ИНН\ОКП "3665012499\555" - операции по "АМП /Воронеж" загрузились на него. Нового АМП не появилось...
Если у Вас обработка выглядит так же (прикрепил ту что пользовал), то нужно смотреть на реальной базе.

И я бы порекомендовал Вам пригласить 1с программиста.

ЗЫ а вообще, ИМХО, импорт очень своеобразно написан. При загрузке больших объемов терпение нужно железное иметь.
Прикрепленные файлы:
Загрузка.ert
36. AndrewUs 11 06.03.14 09:18 Сейчас в теме
(35) Jill, Не поверите, я сам 1С Программист, но правда начинающий. А другой 1С программист просто поступает не совсем красиво. Ему деньги отдали обработку написал, но с косяками, а исправлять не хочет, мол платите еще.
37. AndrewUs 11 06.03.14 09:37 Сейчас в теме
(36) AndrewUs, Да в чистой базе у меня обработка тоже не продублировала ... может быть стоит проверить с самого начала, т.е. начать смотреть и загружать с того момента, когда началось дублирование?
38. Jill 17 06.03.14 12:16 Сейчас в теме
(36) AndrewUs, ну да, есть такие кадры, хотя тут сложно судить: такие ТЗ порой интересные раздают, а потом выясняется...
Но как я уже говорил: то что очень "своеобразно" он ее написал, на мой взгляд, это факт.

(37)
Загружать нужно, естественно, до момента задвоения, иначе вся инфа будет грузиться на "первого попавшегося" контрагента с ИНН, совпадающим с ИНН контрагента программы-экспортера.
Флаг "Удалять операции перед загрузкой" удаляет, как это ни странно, только операции - задвоениями не занимается. :)
39. AndrewUs 11 06.03.14 12:36 Сейчас в теме
(38) Jill, Да, задвоение в справочнике действительно остается и не удаляется, даже не помечается на удаление ... ну это не так важно. Значит, все-таки стоит попробовать с самого начала задвоения. Спасибо.
40. AndrewUs 11 07.03.14 15:30 Сейчас в теме
(38) Jill, А вот такой вот момент, при загрузке с момента задвоения, при формировании ОСБ по счету, всё с контрагентом хорошо, но появляется ещё одна строка "Основной договор", т.е. идут две строки основного договора ... и приходится перевыбирать основной договор в операции, которая загружалась. Хотя в списке договоров контрагента он там один. Не подхватывается получается основной договор.
41. Jill 17 08.03.14 16:09 Сейчас в теме
(40) AndrewUs, до "задвоения" второго договора точно не было?
42. AndrewUs 11 11.03.14 12:41 Сейчас в теме
(41) Jill, Точно не было. Там такой момент, один основной договор идет на операции, которые были загружены, а другой, а точнее тот же самый, основной договор идет на выписки, может быть стоит перевыгрузить выписки ... ???
43. Jill 17 11.03.14 14:38 Сейчас в теме
(42) AndrewUs, я так понимаю "основной договор для выписок" уже был в базе?
По-поводу необходимости перегрузки выписок ничего сказать не могу - не знаю каким образом они импортируются...
Но оно, на самом деле, не особо важно.
Важно знать что унификация договоров контрагента в обработке загрузки операций происходит по наименованию, т.е. "Основной_договор" и "Основной__договор" не одно и то же.
Нужно сравнить наименования договоров "операций" и "выписок" и устранить несоответствия перед загрузкой операций в 1с, в учетных системах-экспортерах и, при необходимости, в обработках импорта (наименования договоров по умолчанию), если они присутствуют.
44. AndrewUs 11 11.03.14 14:58 Сейчас в теме
(43) Jill, Дело в том, что основной договор один у контрагента. И в данном случае вопрос такой, при открытии операций, выгруженных ранее, и перевыборе этого самого основного договора по контрагентам двойные строки пропадают.
А выгрузка выписок идет из обычной системы клиент банка стандартными обработками.
Я так понимаю, что нужно контрагентов посмотреть и в клиент банке на счет договоров?
45. Jill 17 11.03.14 15:09 Сейчас в теме
(44) AndrewUs, оу...
"Хотя в списке договоров контрагента он там один."
Умудрился незаметить.

Странно у меня ничего не двоится.
Это уже на конкретной базе лучше смотреть...
46. AndrewUs 11 11.03.14 15:18 Сейчас в теме
(45) Jill, Да вот же. У меня в чистой базе, с созданными контрагентами, тоже не двоится ... буду еще ковыряться. Если интересно, то могу потом отписать чем дело закончилось?
47. Jill 17 11.03.14 15:22 Сейчас в теме
(46) AndrewUs, интересно.
Можно отписать даже в том случае, если, таки, получится смоделировать ситуацию. :)
48. Jill 17 11.03.14 15:34 Сейчас в теме
(46) AndrewUs, тьфу, елки, увидел "Если Дог.НайтиПоНаименованию("Основной договор",0,1)=0 Тогда
"...

В функции НайтиДоговор (151 строка) поменяйте на "Если Дог.НайтиПоНаименованию("Основной договор",1,1)=0 Тогда" и будет счастье. :)
AndrewUs; +1 Ответить
49. AndrewUs 11 11.03.14 15:55 Сейчас в теме
50. AndrewUs 11 11.03.14 16:47 Сейчас в теме
(48) Jill, Попробовал, получилось, вроде бы, с единственной помаркой, но это уже врятле наша вина .... пусть бухи смотрят документы, ранее введенные.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот