Имя: Пароль:
1C
 
Как определить по префиксам документ продает или покупает?
🠗 (PR 06.10.2011 10:59)
,
0 Blakangelos
 
06.10.11
10:12
Версия 1С 7

префиксы прп, нп, нпп, Св, , Пнц, Св ???
1 filh
 
06.10.11
10:13
чего? уже пятница?
3 unknown181538
 
06.10.11
10:14
Зачет!
4 Blakangelos
 
06.10.11
10:18
у меня выгрузка из стороней программы похожа на 1С v7  там есть SupplDocID:П
НЦ064248
ПНЦ064295
ПНЦ055420
ПНЦ064240
ПНЦ063303
СВЗ001174-ПНЗ000001

и есть
DocID
ПРЗ20110801@3
ПРЗ20110801@3
ПРЗ20110801@3
ПРЗ20110801@3
ПРЗ20110801@3
НПЦ066332
НПЦ066332
НПЦ066332


как определить где продажа где поставка ? как то по префиксам но я не в курсе как :(

Шоколадные дыры свои зарыли.
5 Rie
 
06.10.11
10:18
(0) Префикс у любого документа можно поставить _любой_.
В глобальном модуле посмотри - каким документам автоматически префиксы присваиваются. И будет половина счастья. Вторая половина наступит, когда поиском пройдёшься насчёт "УстановитьНовыйНомер".
6 Rie
 
06.10.11
10:19
(4) Никак не определить - пока не залезешь в ту стороннюю программу.
7 Rie
 
06.10.11
10:20
+(6) Это могут быть вообще не продажи/покупки, а фирмы, к примеру.
8 Эльниньо
 
06.10.11
10:20
А что непонятного?
прп - Продаёт и Реализует Продукцию
нп - Не Продаёт
нпп - Не Продаёт Похоже
...
9 Blakangelos
 
06.10.11
10:21
а РНЦ, РНП СВ ???
10 Blakangelos
 
06.10.11
10:23
Вот эта выгрузка http://disk.tom.ru/p2dz1ax
11 Blakangelos
 
06.10.11
10:23
может что подскажите
12 Любопытная
 
06.10.11
10:24
Тебе уже подсказали же
13 Blakangelos
 
06.10.11
10:24
да вот смотрю проги через которые выгружали и что то там ничего похожего не вижу :(
14 Blakangelos
 
06.10.11
10:26
Что бы  префикс указывать нужно же писать Префикс(ИБ) ???
18 Rie
 
06.10.11
10:29
(14) Вы о чём? Указывать где? Писать что?
23 Rie
 
модератор
06.10.11
10:33
В тематических ветках имеет смысл придерживаться темы. В том числе и топикстартеру, которому ближайшее время предстоит немного отдохнуть.
24 Blakangelos
 
06.10.11
10:54
//-----------------------------------------------------------------------------
Функция ПолучитьКаталог(ВыбФайл)
   СтрКаталог = СокрЛП(ВыбФайл);
   ИсхСтр = СокрЛП(ВыбФайл);
   НовыйКаталог = "";
   Если СтрЧислоВхождений(ИсхСтр, ".") = 0 Тогда
       Возврат ИсхСтр;
   КонецЕсли;
   Если СтрЧислоВхождений(СтрКаталог, "\") > 0 Тогда
       Поз = Найти(СтрКаталог, "\");
       Пока Поз > 0 Цикл
          СтрКаталог = Прав(СтрКаталог, СтрДлина(СтрКаталог)-Поз);
          Поз2 = Найти(ИсхСтр, СтрКаталог);
          НовыйКаталог = Лев(ИсхСтр, Поз2-1);
          Поз = Найти(СтрКаталог, "\");
       КонецЦикла;
   КонецЕсли;
   Возврат НовыйКаталог;
КонецФункции
//-----------------------------------------------------------------------------
// Выбор файла
Функция ВыборФайла(ВыбФайл, СтрЗаголовок, СтрПриглашение)
   Перем ПредстСпр;
   НовыйФайл = "";
   НовыйКаталог = ПолучитьКаталог(ВыбФайл);
   Если НовыйКаталог = "" Тогда
       НовыйКаталог = ФС.ТекКаталог()
   КонецЕсли;
   Если ФС.ВыбратьФайл(0, НовыйФайл, НовыйКаталог, СтрЗаголовок, СтрПриглашение+"(*.txt)|*.txt|Все файлы(*.*)|*.*", "txt") = 1 Тогда
       ВыбФайл = НовыйКаталог+НовыйФайл;
       Возврат 1;
   КонецЕсли;
   Возврат 0;
КонецФункции
//*******************************************
Функция РазбитьСтроку(всз,Стр,Разделитель)
   всз=СоздатьОбъект("СписокЗначений"); //Возвращаемый список значее
   //всз=СЗ;
   закончить=0;
   Пока закончить=0 Цикл
       поз=Найти(Стр,Разделитель);
       Если поз=0 Тогда
           всз.ДобавитьЗначение(Стр);
           закончить=1;
       Иначе
           всз.ДобавитьЗначение(лев(Стр,поз-1));
           Стр=Прав(Стр,СтрДлина(Стр)-поз-СтрДлина(Разделитель)+1);
       КонецЕсли;
   КонецЦикла;
   Возврат всз;
КонецФункции
//*******************************************
Процедура ОбработкаКонтрагента()

Перем всз,Контр,Валюта,Курс,Договор,Кратность;
Кол_во = 0;
Файл=СоздатьОбъект("Текст");
Фирма=СоздатьОбъект("Справочник.Фирмы");
Спр=СоздатьОбъект("Справочник.Склады");
СпрНом=СоздатьОбъект("Справочник.Номенклатура");
СпрЕД=СоздатьОбъект("Справочник.Единицы");
СпрЦены=СоздатьОбъект("Справочник.Цены");
СпрТипыЦен=СоздатьОбъект("Справочник.ТипыЦен");
СпрКонтр=СоздатьОбъект("Справочник.Контрагенты");
СпрДог=СоздатьОбъект("Справочник.Договоры");
Док=СоздатьОбъект("Документ.ПоступлениеТМЦ");

Файл.КодоваяСтраница(0);                            
Файл.Открыть(ВыбФайлЗагрузки);
ВсегоЭлементовВФайле=Окр((Файл.КоличествоСтрок()),0,1);
ВсегоЭлементовВФайле=ВсегоЭлементовВФайле-1;
НачатьТранзакцию();
СтарНом="";
Для нн=2 По ВсегоЭлементовВФайле Цикл
//Для нн=2 По ВсегоЭлементовВФайле Цикл
     Стр=СтрЗаменить(Файл.ПолучитьСтроку(нн),",",".");
   РазбитьСтроку(всз,Стр,Разделитель);
   Код        = Строка(всз.ПолучитьЗначение(2));
   Кол_во        = Число (СокрЛП(всз.ПолучитьЗначение(5)));
   СтавкаНДС    = Число (СокрЛП(всз.ПолучитьЗначение(24)));
   СуммаНДС    = Число (СокрЛП(всз.ПолучитьЗначение(27)));
   Сумма        = Число (СокрЛП(всз.ПолучитьЗначение(12)));
   Если Кол_во>0 Тогда
       Цена= Сумма/Кол_во;
   Иначе
       Цена=0;
   КонецЕсли;
   
   НомДок        = Строка(всз.ПолучитьЗначение(8));
   НомДок2    = Лев(НомДок,2);
   ПрефиксДок    = Лев(НомДок,3);
   ДатаДок    = Дата(всз.ПолучитьЗначение(3));
   КодФирмы    = "00001";
   КодСклада    = Строка(всз.ПолучитьЗначение(7));
   КодКонтрагента = Строка(всз.ПолучитьЗначение(6));
   Если СтарНом=НомДок Тогда //Продолжение дока
       //тут только ТЧ
       Если СпрКонтр.НайтиПоКоду(КодКонтрагента,)=1 Тогда
           Док.Контрагент = СпрКонтр.ТекущийЭлемент();
       Иначе
           Продолжить
       КонецЕсли;

       Док.НоваяСтрока();
       Док.ВидТМЦ = Перечисление.ВидыТМЦ.Товар;
       Если СпрНом.НайтиПоКоду(Код,)=1 Тогда
           Док.Номенклатура = СпрНом.ТекущийЭлемент();
       Иначе
       КонецЕсли;
       Док.Количество = Кол_во;
       Док.Единица = СпрНом.БазоваяЕдиница.ТекущийЭлемент();
       Док.Коэффициент = 1;
       Док.Цена = Цена;
       Если (СтавкаНДС = 18) или (СтавкаНДС = 20) Тогда
           Док.СтавкаНДС = Перечисление.СтавкиНДС.НДС18
       Иначе
           Док.СтавкаНДС = Перечисление.СтавкиНДС.НДС10
       КонецЕсли;
       Док.СуммаНДС = СуммаНДС;
       Док.Сумма = Сумма;
       СуммаВзаиморасчетовДок    = СуммаВзаиморасчетовДок + Док.Сумма;
       Док.СуммаВзаиморасчетов        = глПересчет(СуммаВзаиморасчетовДок,
                                   Валюта,Курс,
                                   Договор.ВалютаВзаиморасчетов,ДатаДок,Кратность);
   Иначе
       Если ПустоеЗначение(СтарНом)=0 Тогда
           //Док.Записать();
       КонецЕсли;
           Если (Док.НайтиПоНомеру(НомДок,ДатаДок,)=0) и (НомДок2="ПН") и (ПрефиксДок <> "ПНЗ") Тогда
               СтарНом=НомДок;
               СуммаВзаиморасчетовДок = 0;
               Док.Новый();
               Док.НомерДок = НомДок;
               Док.ДатаДок = ДатаДок;
               Док.КодОперации = Перечисление.КодыОпераций.Закупка;
               Если Фирма.НайтиПоКоду(КодФирмы,)=1 Тогда
                   Док.Фирма = Фирма.ТекущийЭлемент();
               Иначе
               КонецЕсли;
               Если Спр.НайтиПоКоду(КодСклада,)=1 Тогда
                   Док.Склад = Спр.ТекущийЭлемент();
               Иначе
               КонецЕсли;
               Если СпрКонтр.НайтиПоКоду(КодКонтрагента,)=1 Тогда
                   Док.Контрагент = СпрКонтр.ТекущийЭлемент();
               Иначе
                   Сообщить("Не найден контрагент по документу - "+ НомДок+" от "+ДатаДок);
                   Продолжить
               КонецЕсли;
               СпрДог.ИспользоватьВладельца(Док.Контрагент);
               Если СпрДог.НайтиПоНаименованию("Основной договор",1,0)=1 Тогда
                   Док.Договор = СпрДог.ТекущийЭлемент();
                   Договор    = Док.Договор;
                   // Сообщить(Док.Контрагент);
               Иначе
                   Сообщить(Док.Контрагент+" не найден договор!!!");
               КонецЕсли;
               Док.Валюта = глРубли;
               Валюта    = Док.Валюта;
               ВалютаВзаиморасчетов = глРубли;
               Кратность =1;
               Док.Курс=1;
               Курс    =1;
               Док.УчитыватьНДС =1;
               Док.СуммаВклНДС =1;
               //Док.ТипЦен=
               // Загрузка первой строки табличной части
               Док.НоваяСтрока();
               Док.ВидТМЦ = Перечисление.ВидыТМЦ.Товар;
               Если СпрНом.НайтиПоКоду(Код,)=1 Тогда
                   Док.Номенклатура = СпрНом.ТекущийЭлемент();
               Иначе
               КонецЕсли;
               Док.Количество = Кол_во;
               Док.Единица = СпрНом.БазоваяЕдиница.ТекущийЭлемент();
               Док.Коэффициент = 1;
               Док.Цена = Цена;
               СпрЦены.ИспользоватьВладельца(Док.Номенклатура);
               СпрТипыЦен.НайтиПоНаименованию("Закупочные",0,0);
               Если СпрЦены.НайтиПоРеквизиту("ТипЦен",СпрТипыЦен.ТекущийЭлемент(),0)=0 Тогда
                   СпрЦены.Новый();
                   СпрЦены.ИспользоватьДату(ДатаДок);
                   СпрЦены.ТипЦен=СпрТипыЦен.ТекущийЭлемент();
                   СпрЦены.Цена=Цена;
                   СпрЦены.Валюта=глРубли;
                   СпрЦены.Единица=СпрНом.БазоваяЕдиница.ТекущийЭлемент();
                   СпрЦены.Записать();
               Иначе
                   //Сообщить("неа"+Док.Номенклатура);
               КонецЕсли;

               Если (СтавкаНДС = 18) или (СтавкаНДС = 20) Тогда
                   Док.СтавкаНДС = Перечисление.СтавкиНДС.НДС18
               Иначе
                   Док.СтавкаНДС = Перечисление.СтавкиНДС.НДС10
               КонецЕсли;
               Док.СуммаНДС = СуммаНДС;
               Док.Сумма = Сумма;
               СуммаВзаиморасчетовДок    = СуммаВзаиморасчетовДок + Док.Сумма;
               Док.СуммаВзаиморасчетов        = глПересчет(СуммаВзаиморасчетовДок,
                                           Валюта,Курс,
                                           Договор.ВалютаВзаиморасчетов,ДатаДок,Кратность);

               //Новыйдок+1 строка
           Иначе
               //Сообщить("Документ номер " + Код + " уже существует!!!"+НомДок);
               Продолжить;
           КонецЕсли;
   КонецЕсли;
   Док.Записать();
КонецЦикла;
Если ПустоеЗначение(СтарНом)=0 Тогда
//    Док.Записать();
КонецЕсли;

ЗафиксироватьТранзакцию();
Сообщить("Загрузка завершена!");
КонецПроцедуры
//-----------------------------------------------------------------------------
Процедура ВыборФайлаЗагрузки()
   ВыборФайла(ВыбФайлЗагрузки, "Выберете файл для загрузки", "Файл для загрузки");
КонецПроцедуры
25 Blakangelos
 
06.10.11
10:55
вот код тут только нашел Про закупку а про продажу неа , может кто знает взглянет и поскажет?
26 filh
 
06.10.11
10:56
(24) и что это за вброс?
27 filh
 
06.10.11
10:56
(25) нашел? Ахтунг?
28 Blakangelos
 
06.10.11
11:01
не понял твоих речей
29 PR
 
06.10.11
11:04
(28) Так ты мужик или тетка? Или толстый троль?
30 Blakangelos
 
06.10.11
11:42
какая тебе разница