|
v7.7 Типа ТиС, самоделка. Разбираюсь с ТА | ☑ | ||
---|---|---|---|---|
0
aka AMIGO
09.01.17
✎
13:12
|
В Модуле формы
Если ДатаДок >= ПолучитьДатуТА() Тогда РассчитатьРегистрыПО(ПолучитьДокументТА()); Иначе РассчитатьРегистрыНа(ДатаДок); КонецЕсли; ДатаДок = 9.01.17 В Общем журнале два дока: 9.01.17 12:32:00 проведен 9.01.17 12:54:00 не проведен Внизу на рамке окна ТА: 9.01.17 12:50:01 Откуда взялись эти 50 минут? должно быть 32, т.к. последний проведен именно в 32 минуты! Естественно, получитьДокументТА срабатывает с ошибкой.. Что двинуло ТА на 50 минут? в SysLog всё правильно.. И на эти "50" минут не попадает ни одной записи.. |
|||
1
Злопчинский
09.01.17
✎
13:14
|
Та не обязана совпадать с документом
Используйте получитьта() |
|||
2
aka AMIGO
09.01.17
✎
13:15
|
(1) Резонно.. Спасибо, больше, пожалуй, ничего не нужно :)
|
|||
3
Джинн
09.01.17
✎
13:15
|
ПолучитьПозициюТА()
|
|||
4
Umga2002
09.01.17
✎
13:16
|
В последовательности не один вид документа.....
а несколько... |
|||
5
aka AMIGO
09.01.17
✎
13:17
|
(3) Да, или так..
Ладушки, сейчас попытаюсь проверить на локальной базе (4) - я-ж в Общий журнал-то смотрел.. и в ЖР.. чисто.. |
|||
6
aka AMIGO
09.01.17
✎
13:28
|
Применил ПолучитьТА() - ошибка ушла.
(1) Отдельное спасибо еще раз :) И спасибо всем, вопрос закрыт :) |
|||
7
Злопчинский
09.01.17
✎
13:30
|
(6) там синтакспомощник есть, его можно просто листать по веткам, много интересного узнаещь
|
|||
8
aka AMIGO
09.01.17
✎
13:52
|
(7) В нём и пасусь :)
Вот еще что увидел в отладчике: ПолучитьТА() = "09.01.2017 12:34:49" ПолучитьВремя(ПолучитьДокументТА()) = "12:42:11" ПолучитьДокументТА() = Счет СчИ-00003 (09.01.2017) У дока Счет время-таки 12:34:49 ![]() |
|||
9
aka AMIGO
09.01.17
✎
13:53
|
||||
10
Злопчинский
09.01.17
✎
15:33
|
(8) не суетись
Аккуратно работал и все ок |
|||
11
aka AMIGO
09.01.17
✎
15:47
|
(10) Как не суетиться-то.. Ведь совершенно непонятно: ТА установил на док.Счет, время его 12:34
а функция ПолучитьВремя(ПолучитьДокТА()) возвращает 12:42 - время последнего документа, а не Счета... Т.е. прежде, чем применять функцию, надо в отладчике внимательно посмотреть, что-ж она возвратит-то.. Может, так и надо, чтобы в лаврах не утонуть :) |
|||
12
Злопчинский
09.01.17
✎
15:51
|
(11) получитьдокта что возвращает?
|
|||
13
Злопчинский
09.01.17
✎
15:57
|
Ну и для начала снести. Индексы и переиндексироваться
|
|||
14
гтщ
09.01.17
✎
15:57
|
Это все работает в модуле проведения перемещения и уже сделаны им какие то движения. где то была галочка типа построчное проведение или типа того.
|
|||
15
гтщ
09.01.17
✎
16:02
|
Думаю что это влияет.
Актуальность(<?>) Синтаксис: Актуальность(<Флаг>) Назначение: Устанавливает или сбрасывает признак актуальности временных итогов. Возвращает: значение признака актуальности на момент до вызова функции. Параметры: <Флаг> - признак актуальности временного расчета итогов. Параметр может принимать значения: 1 - поддерживать временный расчет в актуальном состоянии; 0 - не поддерживать временный расчет в актуальном состоянии. Если не задан - значение не меняется. |
|||
16
aka AMIGO
09.01.17
✎
16:44
|
(12) Так в (8) я выложил ил окна отладчика:
ПолучитьДокументТА() = Счет СчИ-00003 (09.01.2017) |
|||
17
aka AMIGO
09.01.17
✎
16:46
|
(14) нет, это всё в модуле формы, на форме есть кнопка "Проверка проведения", операторы (0) оттуда.
|
|||
18
Злопчинский
09.01.17
✎
16:52
|
(17) очень сомнительно, рискну сказать не верю
|
|||
19
aka AMIGO
09.01.17
✎
16:56
|
(18) Процедура ПроверкаНаПроведение()
Если Проведен()=1 Тогда Сообщить("Документ уже проведен!"); Возврат; КонецЕсли; ДокНеПроводится=0; ТЗ = СоздатьОбъект("ТаблицаЗначений"); ВыгрузитьТабличнуюЧасть(ТЗ); ТЗ.НоваяКолонка("Поз"); ТЗ.Заполнить(1,,,"Поз"); ТЗ.Свернуть("Товар","Поз"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл Если ТЗ.Поз>1 Тогда Сообщить("В табличной части дублируется Товар "+ТЗ.Товар); ДокНеПроводится=1; КонецЕсли; КонецЦикла; Если ДокНеПроводится=1 Тогда Сообщить("Документ НЕ может быть проведен!"); КонецЕсли; Если Склад.Выбран()=0 Тогда Сообщить("Не указан склад откуда производится перемещение!"); Возврат; КонецЕсли; Если СкладПолучатель.Выбран()=0 Тогда Сообщить("Не указан склад куда производится перемещение!"); Возврат; КонецЕсли; Рег2 = СоздатьОбъект("Регистр.ЧугунныйРезерв"); // по Регистру ОстаткиТоваров (здесь проходят учет все типы накладных ) Рег=СоздатьОбъект("Регистр.ОстаткиТоваров"); Рег1=СоздатьОбъект("Регистр.МонтажныеРаботы"); //Если ИтогиАктуальны()=0 Тогда Рег.ВременныйРасчет(); Рег1.ВременныйРасчет(); Рег2.ВременныйРасчет(); Если (ПустоеЗначение(ТекущийДокумент())=0) И (ДатаДок < ПолучитьДатуТА()) Тогда //док записан РассчитатьРегистрыНа(ТекущийДокумент()); Иначе Если ДатаДок >= ПолучитьДатуТА() Тогда РассчитатьРегистрыПО(ПолучитьДокументТА()); //РассчитатьРегистрыПо(ПолучитьТА()); Иначе РассчитатьРегистрыНа(ДатаДок); КонецЕсли; КонецЕсли; |
|||
20
aka AMIGO
09.01.17
✎
16:58
|
||||
21
aka AMIGO
09.01.17
✎
17:00
|
||||
22
Злопчинский
09.01.17
✎
17:01
|
Поехал домой. Заворачивай базу целиком в архив и на [email protected]
|
|||
23
Tatitutu
09.01.17
✎
17:21
|
в журнале документов - правой кнопкой на крайнем документе - Установить ТА на документ (нужен монопольный режим)
|
|||
24
trdm
09.01.17
✎
17:31
|
(0) > 9.01.17 12:54:00 не проведен
> Внизу на рамке окна ТА: 9.01.17 12:50:01 Отменили проведение дока и записали. Время сдвинулось, ТА так и осталась в предней точке - не было смысла сдвигать. |
|||
25
Злопчинский
09.01.17
✎
19:02
|
(21) нафиг, базу давай.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |