Имя: Пароль:
1C
1C 7.7
v7: Как создать счет для клиента?
0 Nadz Goldman
 
12.07.15
19:55
Господа!
Прошу отнестись с долей юмора, но так таки помочь делом =)

Году в 2006 что-то там с полгода программировал для нужд бухгалтерии, но не более того.
Сейчас всплыла аналогичная проблема - надо, мол, сделать и точка.

Что есть: биллинг выгружает CSV с данными: договор, наименование контрагента, ИНН, КПП, сумма.
Что надо: забрать данные из CSV в 1С и создать по каждому контрагенту счет.
Распарсить CSV я смог - ничего сложного.
Далее у меня тупик уже второй день.
Никак не могу понять как мне создать новые счет на каждого контрагента - нигде не могу найти нужные "поля".

Т.е. делаю примерно так:
ДатаСегодня = РабочаяДата();
Сч = СоздатьОбъект("Документ.Счет");
Сч.Новый();
Сч.Дата = ДатаСегодня;
Сч.Сумма = Сумм;
Сч.Номер = Сч.УстановитьНовыйНомер();
Сч.ИНН = ИНН;
Сч.КПП = КПП;
Сч.Наименование = Контр;
Сч.Количество = КолВо;

Но максимум из того, что получилось - это сумма с номером вносятся, а все остальные поля пустые.

Подскажите, пожалуйста - как правильно создать счет для клиента?
Может быть есть какой-то пример, где указано какие поля как называются?

Спасибо.
1 Zamestas
 
12.07.15
20:01
(0) Напиши сразу название конфигурации, а то порвут как грелку.
2 Nadz Goldman
 
12.07.15
20:21
Конфигурация стандартная 1С 77, БухУчет, ред. 4.5 ( 7.70.594 )
3 Zamestas
 
12.07.15
20:26
(2) Вы в конфигураторе откройте сей документ и посмотрите его поля внимательно.
4 HawkEye
 
12.07.15
20:27
(1) поля пустые или все-таки ошибки?
5 Zamestas
 
12.07.15
20:31
- Документ
        - Идентификатор    "Счет"
        - Синоним    "Счет"
        - Комментарий
        - Журнал    "Журнал.Счета"
        - ПериодичностьНомера    "Год"
        - ДлинаНомера    "8"
        - ТипНомера    "Текстовый"
        - АвтоНумерация    "2"
        - КонтрольУникальности    "1"
        - Нумератор
        - ОперативныйУчет    "0"
        - Расчет    "0"
        - БухгалтерскийУчет    "1"
        - СоздаватьОперацию    "Выборочно"
        - АвтоНумерацияСтрок    "1"
        - АвтоудалениеДвижений    "0"
        - РедактированиеОпераций    "0"
        - РазрешитьПроведение    "0"
        - ВводимыеНаОснованииДокументы
            -     "Документ.Выписка"
            -     "Документ.ВыполнениеЭтапаРабот"
            -     "Документ.ОказаниеУслуг"
            -     "Документ.РасходнаяНакладная"
        - ОснованиеДляЛюбогоДокумента    "0"
        - ОбластьРаспространения    "ВсеИнформационныеБазы"
        - АвтоРегистрация    "1"
        - ДополнительныеКодыИБ
        - РеквизитШапки
            - Идентификатор    "Контрагент"
            - Синоним    "Плательщик"
            - Комментарий    "Организация, которая оплатила счет за грузополучателя"
            - Тип    "Справочник"
            - Вид    "Контрагенты"
            - Длина    "0"
            - Точность    "0"
            - НеОтрицательный    "0"
            - РазделятьТриады    "0"
        - РеквизитШапки
            - Идентификатор    "Договор"
            - Синоним
            - Комментарий    "Договор"
            - Тип    "Справочник"
            - Вид    "Договоры"
            - Длина    "0"
            - Точность    "0"
            - НеОтрицательный    "0"
            - РазделятьТриады    "0"
        - РеквизитШапки
            - Идентификатор    "Плательщик"
            - Синоним    "Грузополучатель"
            - Комментарий    "Организация, которая получает товар"
            - Тип    "Справочник"
            - Вид    "Контрагенты"
            - Длина    "0"
            - Точность    "0"
            - НеОтрицательный    "0"
            - РазделятьТриады    "0"
        - РеквизитШапки
            - Идентификатор    "РасчетныйСчет"
            - Синоним
            - Комментарий    "Расчетный счет"
            - Тип    "Справочник"
            - Вид    "БанковскиеСчета"
            - Длина    "0"
            - Точность    "0"
            - НеОтрицательный    "0"
            - РазделятьТриады    "0"
        - РеквизитШапки
            - Идентификатор    "УчитыватьНП"
            - Синоним
            - Комментарий
            - Тип    "Число"
            - Вид
            - Длина    "1"
            - Точность    "0"
            - НеОтрицательный    "0"
            - РазделятьТриады    "0"
        - РеквизитШапки
            - Идентификатор    "ВариантРасчетаНалогов"
            - Синоним    "Не используется"
            - Комментарий
            - Тип    "Справочник"
            - Вид    "ВариантыРасчетаНалогов"
            - Длина    "0"
            - Точность    "0"
            - НеОтрицательный    "0"
            - РазделятьТриады    "0"
        - РеквизитШапки
            - Идентификатор    "ВариантОтправки"
            - Синоним
            - Комментарий    "1- грузоотправитель - сама организация; 0 - грузоотправитель - сторонняя организация"
            - Тип    "Число"
            - Вид
            - Длина    "1"
            - Точность    "0"
            - НеОтрицательный    "1"
            - РазделятьТриады    "0"
        - РеквизитШапки
            - Идентификатор    "ТипЦен"
            - Синоним    "Тип цен"
            - Комментарий
            - Тип    "Справочник"
            - Вид    "ТипыЦен"
            - Длина    "0"
            - Точность    "0"
            - НеОтрицательный    "0"
            - РазделятьТриады    "0"
        - РеквизитТабличнойЧасти
            - Идентификатор    "Товар"
            - Синоним
            - Комментарий    "Товары и услуги"
            - Тип    "Справочник"
            - Вид    "Номенклатура"
            - Длина    "0"
            - Точность    "0"
            - НеОтрицательный    "0"
            - РазделятьТриады    "0"
            - ИтогПоКолонке    "0"
        - РеквизитТабличнойЧасти
            - Идентификатор    "Количество"
            - Синоним
            - Комментарий    "Количество"
            - Тип    "Число"
            - Вид
            - Длина    "14"
            - Точность    "3"
            - НеОтрицательный    "0"
            - РазделятьТриады    "0"
            - ИтогПоКолонке    "0"
        - РеквизитТабличнойЧасти
            - Идентификатор    "Цена"
            - Синоним
            - Комментарий    "Цена"
            - Тип    "Число"
            - Вид
            - Длина    "15"
            - Точность    "2"
            - НеОтрицательный    "0"
            - РазделятьТриады    "1"
            - ИтогПоКолонке    "0"
        - РеквизитТабличнойЧасти
            - Идентификатор    "Сумма"
            - Синоним
            - Комментарий
            - Тип    "Число"
            - Вид
            - Длина    "15"
            - Точность    "2"
            - НеОтрицательный    "0"
            - РазделятьТриады    "1"
            - ИтогПоКолонке    "0"
        - РеквизитТабличнойЧасти
            - Идентификатор    "НДС"
            - Синоним
            - Комментарий    "Сумма НДС"
            - Тип    "Число"
            - Вид
            - Длина    "15"
            - Точность    "2"
            - НеОтрицательный    "0"
            - РазделятьТриады    "1"
            - ИтогПоКолонке    "0"
        - РеквизитТабличнойЧасти
            - Идентификатор    "НП"
            - Синоним
            - Комментарий
            - Тип    "Число"
            - Вид
            - Длина    "15"
            - Точность    "2"
            - НеОтрицательный    "0"
            - РазделятьТриады    "1"
            - ИтогПоКолонке    "0"
        - РеквизитТабличнойЧасти
            - Идентификатор    "Всего"
            - Синоним
            - Комментарий
            - Тип    "Число"
            - Вид
            - Длина    "15"
            - Точность    "2"
            - НеОтрицательный    "0"
            - РазделятьТриады    "1"
            - ИтогПоКолонке    "1"
6 Zamestas
 
12.07.15
20:32
+(5) Это для 7.70.593 - в 594 думаю то же самое.
7 Волшебник
 
модератор
12.07.15
20:36
(0) Совсем обленились 1с-ники. Даже счёт для клиента не могут выписать.
8 Zamestas
 
12.07.15
20:37
(7) Особенно этот кусок доставляет:
Сч = СоздатьОбъект("Документ.Счет");
Сч.Новый();
Сч.Дата = ДатаСегодня;
..
Сч.Наименование = Контр;
9 Nadz Goldman
 
12.07.15
20:38
(4) Пустые, ошибок нет

(5) Благодарю!
Но глядя на это, что-то стало ещё больше непонятного: почему РеквизитыШапки, к примеру, несколько раз идут?

(7) Ну я как бы совсем немножко более чем полностью перловик =)
10 Nadz Goldman
 
12.07.15
20:40
(8) Без понятия что там доставляет, но так таки "Наименование" как раз из документа конфигуратора взял, а оно что-то совсем не то.
11 Волшебник
 
модератор
12.07.15
20:40
(9) Твой перл сосёт, когда нужно выписать клиенту счёт
12 floody
 
12.07.15
20:43
(10) Контрагента вам нужно поискать в справочнике по инн либо создать нового, и уже готовую ссылку положить в реквизит документа.
13 Nadz Goldman
 
12.07.15
20:45
(11) Он всё-таки не мой, а переводить топик в холивар модератором как-то не совсем красиво.
Да и к тому же электронно счета мы всё-таки рассылаем скриптами на перле, а не на 1С.
Да и с другой стороны - процентов 80% работает у нас на перле.

Но так таки странное дружелюбие проявленное модератором - залог успеха форума и показатель ширины и высоты ума =)

(12) Да, это уже я пишу. Загвоздка оказалась ещё в том, что у некоторых есть только ИНН и нет КПП.
Но это таки мелочи.
14 oslokot
 
12.07.15
20:48
(0) Ждите появления Mikeware он скажет как решить эту проблему.
15 Zamestas
 
12.07.15
20:48
(10) Выложит скриншот их конфигуратора с развернутыми полями.
(13) Дык в чем проблема - ищи по ИНН, а потом потом уже проверяей КПП. У тебя один хрен реквизиты для поиска построчно из файла прилетают.
16 Zamestas
 
12.07.15
20:51
(13) Дык нах Вам 1С вообще нужна то? Счет это не документ учета и создавать его в базе вообще смысла нет. Не проще все на перле формировать и рассылать???
17 HawkEye
 
12.07.15
21:02
(9) такая конструкция

Сч.Номер = Сч.УстановитьНовыйНомер();

просто обязана вывалить ошибку... что-то ты не договариваешь...
18 HawkEye
 
12.07.15
21:03
не говоря уже про отсутствие в типовой у документа счет реквизитов

дата
номер
ИНН
КПП
Наименование
19 Волшебник
 
модератор
12.07.15
21:20
(13) Я же говорю "создать", а не "разослать". Почувствуй разницу и своё ничтожество на фоне 1С.
20 шаэс
 
12.07.15
21:31
(13) нет КПП - ИПшники же
а что в (0) про количество? а где собственно говоря сам товар - это раз? ну и то, что это уже в табличную часть счета идет - это два
21 ДенисЧ
 
12.07.15
22:01
10 000 рублей и счёт у тебя создастся.
22 SiAl-chel
 
13.07.15
08:52
(0)
1. Документ в 1С - это не запись плоской таблицы. Большинство полей имеют ссылочный тип, то есть идетс связь "один-ко-многим" из других таблиц, как-то "Номенклатура", "Контрагенты"
2. Табличная часть документа - это тоже отдельная таблица, потому перед добавлением товаров и их количеств надо добавлять новую строку методом документа НоваяСтрока().
23 SiAl-chel
 
13.07.15
08:57
+(22)
Причем ссылка, подставляемая в реквизиты не есть наименование, код или номер, это внутренний идентификатор записи в таблицах 1С. Для того чтобы ее получить, надо создать нужный объект, найти нужный элемент справочника или документ по известным значениям реквизитов, типа номер, код, наименование. Если нужного элемента справочника или документа нет, тогда надо создать объект, заполнить реквизиты, записать и получить ссылку методами ТекущийЭлемент() или ТекущийДокумент().
24 Fedor-1971
 
13.07.15
09:31
(0)
Сч.ИНН = ИНН; - Точно поле документа Счёт? проверь соответствие типов

Сч.КПП = КПП; - аналогично

Сч.Наименование = Контр; - Если это запись из справочника Контрагенты, то надо примерно так (это по памяти уточни в СП):
контраг=СоздатьОбъект("Справочник.Контрагенты");
контраг.НайтиПоРеквизиту("ИНН", ИНН);
Сч.Наименование=контраг.ТекущийЭлемент();

Сч.Количество = КолВо; - как я понимаю должно быть число?

сч.Записать(); - не забудь.
25 Fedor-1971
 
13.07.15
09:39
24+ Проверь в отладчике:
Сч.Номер = Сч.УстановитьНовыйНомер(); - возможно лишняя. Новый() должно присваивать номер и дату документа по умолчанию, текущая дата и последний номер.
Хотя. можешь просто создать своим кодом два счёта подряд и посмотреть на номера, если пропускает номер, то, строка однозначно лишняя.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн