Заполнение книги покупок

пользователь
Регистрация: 14.12.2015

Первое. Код 26 в книгу попадает как 22, вручную поменять можно, но толку мало. Заполнение ручного ввода тоже не доделали. Дата должна быть пустая, а не дает бланк оставить без даты.

модератор
Регистрация: 06.06.2013

Убедительная просьба в дальнейшем для фото с экрана использовать бесплатные и удобные программы:

LigtShot

GreenShot

Иначе ничего не ясно в Ваших фото.

И что это: "Первое"? А где второе и последующее?

пользователь
Регистрация: 14.12.2015

Поставьте 26 код в счете-фактуре, посмотрите в книгу покупок - код становится 22. Если делать обычным способом через бланк счета-фактуры, в книгу покупок попадает правильно, дата уходит, поле пустое. Но если через ручной ввод делать, тогда невозможно сделать пустую дату.

модератор
Регистрация: 06.06.2013

1. Код 26 выбран и в Книге продаж ставится корректно.
2. Какая дата должна быть ПУСТАЯ? Поясните...
3. И при обращении с проблемой указывайте версию программы и версию обновления.

пользователь
Регистрация: 14.12.2015

Последняя версия сетевая ОРН.

Вы делаете через оприходование счета-фактуры. Я пишу про стандартный бланк выписки счета-фактуры. Выпишите авансовый счет-фактуру с кодом 26, сделайте зачет в отгрузочную и посмотрите в книгу покупок - код пишет 22! Графа 8, дата пустая должна быть, когда вводим через ручной ввод. Через стандартный бланк делает правильно - убирает дату.

модератор
Регистрация: 06.06.2013

Мы делаем, исходя из вашего первичного вопроса. Там указано попадание данных в Книгу покупок, а это, на первый взгляд, оприходование СФ, но Вы ничего про это не пишете, как и про авансовый СФ, оказывается.

Если такой "сумбур вместо музыки" в вопросах будет, то наши специалисты не рассматривают такое вопросы.

Всё надо точно описывать, что, где и как...

Наши пользователи, увы, "грешат" тем, что в первых вопросах не указывают всю информацию, и  приходится "тянуть" эти вопросы...

пользователь
Регистрация: 14.12.2015

Устал ждать - сделал сам:

SF_NDS15.IBL
## Правка 1 — код 26 не затирать (строки ~1295–1303)

Как найти: поиск по тексту `для возмещаемых авансов код операции должен быть 22` (встречается один раз).

**БЫЛО (заменить целиком от строки-комментария до SQL_ЗАПРОС(СП) включительно):**
```
    //для возмещаемых авансов код операции должен быть 22   
    КодОп="22"
    СП.ОЧИСТИТЬ
    СП.ДОБАВИТЬ("INSERT INTO ")
    СП.ДОБАВИТЬ("'"+КнПокТемп+"'")
    СП.ДОБАВИТЬ("(DI,NI,D_ISP,N_ISP,ID_POST,ID_POK,KODOP,ID_KOMIS,KOMM,NGR,PGR,SRT,TIP)")
    СП.ДОБАВИТЬ("SELECT DA,NSF,DA_ISP,NA_ISP,"+?(ПродНашаОрг,"ID_POST","ID_POK")+",ID_POK,'"+КодОп+"',ID_KOMIS,KOMM,NGR,NGRA,SRT,TIP FROM")
    СП.ДОБАВИТЬ("'"+ТемпТаб+"'")
    SQL_ЗАПРОС(СП)
```

**СТАЛО:**
```
    //для возмещаемых авансов код операции должен быть 22   
    // правка 03.07.2026: авансовые СФ с КВО 26 сохраняют код 26 в книге покупок
    // (письмо ФНС от 20.09.2016 № СД-4-3/17657@), остальные - 22 как раньше
    КодОп="22"
    СП.ОЧИСТИТЬ
    СП.ДОБАВИТЬ("INSERT INTO ")
    СП.ДОБАВИТЬ("'"+КнПокТемп+"'")
    СП.ДОБАВИТЬ("(DI,NI,D_ISP,N_ISP,ID_POST,ID_POK,KODOP,ID_KOMIS,KOMM,NGR,PGR,SRT,TIP)")
    СП.ДОБАВИТЬ("SELECT DA,NSF,DA_ISP,NA_ISP,"+?(ПродНашаОрг,"ID_POST","ID_POK")+",ID_POK,'"+КодОп+"',ID_KOMIS,KOMM,NGR,NGRA,SRT,TIP FROM")
    СП.ДОБАВИТЬ("'"+ТемпТаб+"'")
    СП.ДОБАВИТЬ("WHERE KODOP IS NULL OR KODOP<>'26'")
    SQL_ЗАПРОС(СП)
    // правка 03.07.2026: отдельная вставка для авансов с КВО 26 - код берём из исходной СФ
    СП.ОЧИСТИТЬ
    СП.ДОБАВИТЬ("INSERT INTO ")
    СП.ДОБАВИТЬ("'"+КнПокТемп+"'")
    СП.ДОБАВИТЬ("(DI,NI,D_ISP,N_ISP,ID_POST,ID_POK,KODOP,ID_KOMIS,KOMM,NGR,PGR,SRT,TIP)")
    СП.ДОБАВИТЬ("SELECT DA,NSF,DA_ISP,NA_ISP,"+?(ПродНашаОрг,"ID_POST","ID_POK")+",ID_POK,KODOP,ID_KOMIS,KOMM,NGR,NGRA,SRT,TIP FROM")
    СП.ДОБАВИТЬ("'"+ТемпТаб+"'")
    СП.ДОБАВИТЬ("WHERE KODOP='26'")
    SQL_ЗАПРОС(СП)
```

Следом в файле идёт блок `INSERT INTO ... SF_NDS15_ФайлИтогКнПок` — его НЕ трогать.

---

## Правка 2 — графа 8 пустая у ручных записей зачёта (строки ~891–900)

Как найти: поиск по тексту `SET TIP = '3' WHERE NK IS NOT NULL` (в блоке «данные ручного ввода», рядом строка `СП.SF_NDS15_СформУслВыб("AND")`).

**БЫЛО (заменить целиком):**
```
  СП.SF_NDS15_СформУслВыб("AND")
  т=SQL_ЗАПРОС(СП)
  т.ЗАПИСАТЬ(SF_NDS15_ФайлВыбРучВв)
  т.ЗАКРЫТЬ

  СП.ОЧИСТИТЬ
  СП.ДОБАВИТЬ("UPDATE ")
  СП.ДОБАВИТЬ("'"+SF_NDS15_ФайлВыбРучВв+"'")
  СП.ДОБАВИТЬ("SET TIP = '3' WHERE NK IS NOT NULL AND NK <> ''")
  SQL_ЗАПРОС(СП)
```

**СТАЛО:**
```
  СП.SF_NDS15_СформУслВыб("AND")
  т=SQL_ЗАПРОС(СП)
  т.ЗАПИСАТЬ(SF_NDS15_ФайлВыбРучВв)
  т.ЗАКРЫТЬ

  // правка 03.07.2026: у ручных записей зачёта авансов (КВО 22/26) графа 8
  // (дата принятия на учет, DOPR) в книге покупок не заполняется.
  // Чистим ПОСЛЕ отбора по периоду: в самой записи KN_POK дата должна оставаться -
  // по ней запись попадает в квартал. 01.01.1980 = пустая дата (типовой приём).
  СП.ОЧИСТИТЬ
  СП.ДОБАВИТЬ("UPDATE ")
  СП.ДОБАВИТЬ("'"+SF_NDS15_ФайлВыбРучВв+"'")
  СП.ДОБАВИТЬ("SET DOPR=CAST('01.01.1980' AS DATE) WHERE KODOP='22' OR KODOP='26'")
  SQL_ЗАПРОС(СП)

  СП.ОЧИСТИТЬ
  СП.ДОБАВИТЬ("UPDATE ")
  СП.ДОБАВИТЬ("'"+SF_NDS15_ФайлВыбРучВв+"'")
  СП.ДОБАВИТЬ("SET TIP = '3' WHERE NK IS NOT NULL AND NK <> ''")
  SQL_ЗАПРОС(СП)