Имя: Пароль:
1C
1C 7.7
v7: Непонятная операция/проводка. Как найти источник
0 kupec
 
12.12.22
10:48
Доброго дня. Формирую карточку счета. Отображается сумма и количество с выбранными счетами проводок. Документ - операция. В журнале данная операция не отображается. Пытаюсь сделать через конфигуратор сообщение о виде документа
1 - Опер = Ит.Операция;
2 - Сообщить(Опер.Содержание);
3 - Док=Опер.Документ.ТекущийДокумент();
4 - Сообщить(ТипЗначенияСтр(Док));

2 - Содержание сообщает, а так же все реквизиты операции
3 - Проходит без ошибок
4 - Сообщает тип значения, но именно на "ЭТОЙ" операции выдает пустое значение.

Как найти, от куда данная проводка берется? Заранее спасибо
1 Builder
 
12.12.22
10:50
Операция может быть и без документа, введенная вручную, внезапно...
2 kupec
 
12.12.22
10:55
(1) нет её в журнале и не открывается она из карточки счета.
3 Builder
 
12.12.22
10:56
(0) В журнале Операций сделай отбор по "Операция", увидишь.
https://prnt.sc/4goM6K7dZrFY
4 Builder
 
12.12.22
10:58
(2) Ну или ТиИ + переиндексация + пересчет бухитогов, если уж ничего не нашел.
5 kupec
 
12.12.22
11:00
В журнале её нет, даже с отбором. ТиИ тоже про это думал. Но у мен SQL. Поможет ли?
6 Builder
 
12.12.22
11:03
(5) Ну попробуй на копии.
А вообще очень странно что не видно в журнале, что-то не договариваешь...
7 kupec
 
12.12.22
11:30
говорю все как есть. Не договаривать Нечего
8 obs191
 
12.12.22
11:32
Период журнала и дата операции?
9 kupec
 
12.12.22
11:34
период соответствует дате операции 28.11.2022
10 YFedor
 
12.12.22
11:34
(9) А кто мешал дату проводок и дату документа, формирующего проводки сделать разными?
11 kupec
 
12.12.22
11:35
Сейчас в обед попробую сделать полный пересчет итогов. Но думаю, это не поможет
12 kupec
 
12.12.22
11:35
(10) научи в 7.7 сделать это
13 kupec
 
12.12.22
11:44
Вот что нашел
https://ibb.co/RgbnMZs
14 АгентБезопасной Нацио
 
12.12.22
11:44
(10) в клюшках штатно так не сделать. а те, кто может это сделать - не задают вопросов типа (0)
(7) найди операцию в таблице 1soper, посмотри id документа (он там, емнип, наеборот называется - docid), ну и от него уже ищи что за док.
15 kupec
 
12.12.22
11:57
(14) наверно толку не хватит....как это можно сделать?
16 Builder
 
12.12.22
12:05
(15) Через SQL Server Management Studio
Попробуй ТиИ сделать для начала, может поймает этот косяк.
17 АгентБезопасной Нацио
 
12.12.22
12:09
(16) нунафиг ТИИ.
для начала - просто реиндексацию средсвами SQL.
>> через SQL Server Management Studio - у него скорее всего еще EM
18 Builder
 
12.12.22
12:12
(17) Ну не факт, 2008 скуль гораздо лучше работает с клюшками :)
19 kupec
 
12.12.22
12:25
(17) что такое EM? Ентерпрайс менеджер?
20 kupec
 
12.12.22
12:25
попытался пометить на удаление данную операцию (13) 7.7 зависла наглухо
21 kupec
 
12.12.22
12:26
как мне теперь закрыть соединение с базой? 7.7 закрылась без обьяснения причины. Пытался отсоединить через SQL базу. Теперь висит сам SQL и крутит на отсоединении базы. Уже минут 15
22 kupec
 
12.12.22
12:35
Пересчет БухИтогов ничего не дал. Как попробовать найти данную операцию через SQL. Подскажите пожалуйста
23 АгентБезопасной Нацио
 
12.12.22
13:38
(20) а она пометилась на удаление, или нет?
(22) select * from _1soper where <тут тто признак, по которому можно идетифицировать эту операцию>
24 vladmenleo
 
12.12.22
13:38
(22) в sql клюшках пустая дата это 01.01.1753
Соответственно через энтерпрайс мэнеджер можно выполнить такой скрипт
DECLARE @EmptyDate DateTime
SET @EmptyDate = CONVERT(DateTime, '17530101', 112)
Select Журнал.*
from
    _1sjourn Журнал
where
    CONVERT(DateTime, LEFT(Журнал.DATE_TIME_IDDOC, 8), 112) = @EmptyDate
Соответственно тебе будет известен IDDOC и IDDOCDEF твоей операции. А дальше сам думай удалить тебе его или еще что
25 kupec
 
12.12.22
14:15
(24) но почему то операция стоит между документов (13)
(20) нет, не пометилась
26 kupec
 
12.12.22
14:19
(24) пустой ответ при выполнении запроса
27 vladmenleo
 
12.12.22
14:24
(24) на скриншоте в (13) общий журнал или журнал проводок?
28 vladmenleo
 
12.12.22
14:25
(26) пардон (27) это к (26)
29 kupec
 
12.12.22
14:27
Журнал проводок
30 vladmenleo
 
12.12.22
14:29
(29) ну тогда переделай запрос к проводкам, а не к журналу документов
31 kupec
 
12.12.22
14:31
(30) переделал, тот же самый результат, пустой ответ
32 vladmenleo
 
12.12.22
14:32
(29) поменяй в (24) _1sjourn на _1SENTRY
и в условии поставь
where
    CONVERT(DateTime, LEFT(Журнал.DATE_TIME_DOCID, 8), 112) = @EmptyDate
33 kupec
 
12.12.22
14:32
DECLARE @EmptyDate DateTime
SET @EmptyDate = CONVERT(DateTime, '17530101', 112)
Select Журнал.*
from
    _1SOPER Журнал
where
    CONVERT(DateTime, LEFT(Журнал.DATE_TIME_DOCID, 8), 112) = @EmptyDate
34 kupec
 
12.12.22
14:33
DECLARE @EmptyDate DateTime
SET @EmptyDate = CONVERT(DateTime, '17530101', 112)
Select Журнал.*
from
    _1SENTRY Журнал
where
    CONVERT(DateTime, LEFT(Журнал.DATE_TIME_DOCID, 8), 112) = @EmptyDate

Все равно пусто
35 vladmenleo
 
12.12.22
14:37
(34) Странно, если в журнале есть, то и в базе должно быть.
А если попробовать на условие меньше даты первого документа в базе
типа так например?
where
    CONVERT(DateTime, LEFT(Журнал.DATE_TIME_DOCID, 8), 112) < CONVERT(DateTime, '20000101', 112)
36 kupec
 
12.12.22
14:53
DECLARE @EmptyDate DateTime
SET @EmptyDate = CONVERT(DateTime, '17530101', 112)
Select Журнал.*
from
    _1SENTRY Журнал
where
    CONVERT(DateTime, LEFT(Журнал.DATE_TIME_DOCID, 8), 112) < CONVERT(DateTime, '20000101', 112)

Пустой ответ
37 kupec
 
12.12.22
14:53
как то странно, в журнале проводок ни времени ни даты нет...
38 kupec
 
12.12.22
14:58
https://ibb.co/4ShwLxs

Может вот так понятней будет
39 vladmenleo
 
12.12.22
15:06
(38) тогда может попробовать на условие
where
    Журнал.DATE_TIME_DOCID is null
40 vladmenleo
 
12.12.22
15:08
(38) или where
    Журнал.DOCID is null
41 kupec
 
12.12.22
15:34
DECLARE @EmptyDate DateTime
SET @EmptyDate = CONVERT(DateTime, '17530101', 112)
Select Журнал.*
from
    _1SENTRY Журнал
where
    Журнал.DOCID is null // Журнал.DATE_TIME_DOCID is null

Оба запроса пустые
42 kupec
 
12.12.22
15:35
У меня вот такой вопрос, а если есть проводки...может наоборот поискать их и принадлежность к операции//документу...
43 vladmenleo
 
12.12.22
15:50
(42) Так как-раз это и пытаемся сделать - найти проводку в журнале, где iddoc и будет ссылка на документ
44 Fedor-1971
 
12.12.22
16:09
(42) попробуй отобрать в журнале проводок Сумма = СуммаТвоейПроводки
По идее, должно вынайти массив с суммами, если их немного, то полистай и посмотри

ТИИ делал без флажка "Создавать несуществующие ссылки"?
45 kupec
 
12.12.22
16:41
(44) попробую чуть позже. Надо сначала копию сделать
46 Харлампий Дымба
 
12.12.22
18:10
Ну я бы прежде лазанья внутрях сначала так покопался...
В каком журнале не отображается операция? В журнале операций отображается? В журнале проводок отображается? Права на Документы.Операция, на Операция-Просмотр списка и Проводка-Просмотр Списка есть? Опер.Документ.ДатаДок и Опер.ДатаОперации верную дату показывают? Отбор по фирме, разные планы счетов используются? Опер.Выбрана() и Док.Выбран() оба единицы? ПустоеЗначение(Опер) и ПустоеЗначение(Опер.Документ) оба нули?
47 kupec
 
13.12.22
11:06
(46)       Ит.ВыбратьПериоды();
    Пока Ит.ПолучитьПериод() = 1 Цикл
        Опер = Ит.Операция;
        Док=Опер.Документ.ТекущийДокумент();
Док - пустое значение.
в (38) отображение в журнале

Опер.ДатаОперации - верное значение
Опер.Документ - <Объект не найден>(0/)
48 mikecool
 
13.12.22
11:41
(47) реиндексацию делать в первую очередь
49 kupec
 
13.12.22
11:44
(48) средставами SQL как то можно это сделать? Или надо через ТиИ
50 Харлампий Дымба
 
13.12.22
11:52
Аа. Ну судя по картинке в (38) действительно операция откололась от какой-то приходной накладной. Что-то пошло не так в момент записи операции.
Ну тогда всё просто: открыть журнал приходных накладных, за 28.11.2022 в районе 9 утра, найти приходную накладную с товаром Куриная грудка 13.285 на сумму 2700.84. Перепровести, убедиться что операция по документу создана и проводка правильная. Проблемную операцию похерить - удалить, можно предварительно удалив проводку или занулив сумму/количество.
51 kupec
 
13.12.22
11:57
(50) да в том то и дело, что я все эти операции проделал. Но ничего толком не нашел. Мои умения кончились и я написал сюда
52 Харлампий Дымба
 
13.12.22
12:30
Так а чего искать? Приход куриной грудки от Ивушки-Иваново 28го числа был? В базе отражен? Нет-отразить. Проводки есть? Нет - перепровести или ввести приход заново. Проблемные документы удалить и забыть.
53 kupec
 
13.12.22
12:53
Приход есть на это количество, только вот сумма проводки другая. И операция и документ есть. А от этой как избавиться? Пробовал пометить на удаление, виснет наглухо
54 Харлампий Дымба
 
13.12.22
13:19
Ну тут попробовать разное: F8 отключить проводки - удалить, удалить проводки - сохранить - удалить, через обработку выбрать операцию - удалить. А лучше бы переделать исходный приход, а проблемный пометить на удаление - возможно проблемная операция тоже тогда уйдёт. Просто если у исходного документа, к которому была изначально привязано операция, задано в конфигурации "Создавать операцию - Всегда", то удалить её без исходного документа ты не сможешь.
55 uno-group
 
13.12.22
14:27
Грохнуть ее на прямую в СКЛ. Документы прямыми запросами не удаляются случаем. может документ грохнули а при гроханье проводок 1с грохнулась из-за отключения света и т.п.
56 АгентБезопасной Нацио
 
13.12.22
14:36
(55) сначала нужно найти и посмотреть содержимрое docid
ну и надо шрохнуть сначала проводки, а потом операцию
(49) SET NOCOUNT ON
DECLARE @TableName char(32)
DECLARE SysCur CURSOR FOR SELECT name FROM sysobjects WHERE type='U'
OPEN SysCur
FETCH NEXT FROM SysCur INTO @TableName
WHILE @@FETCH_STATUS=0 BEGIN
     DBCC DBREINDEX(@TableName)
     FETCH NEXT FROM SysCur INTO @TableName
END
CLOSE SysCur
DEALLOCATE SysCur

GO
57 kupec
 
13.12.22
14:52
(55) наверно потом надо будет делать пересчет итогов?
58 АгентБезопасной Нацио
 
13.12.22
16:37
(57) если проводки удалил "напрямую" - да, пересчет бухитогов нужен. (если движение регистра - соотвественно, пересчет итогов регистра)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший