|
v7: Просто инфо кто еще на 77 ТиС, дырка в коде... глДвижениеОборотовПродаж | ☑ | ||
---|---|---|---|---|
0
Злопчинский
25.04.20
✎
16:06
|
Просто инфо, м.б. кому пригодится старым мохнатым мамонтам
ГМ, добавить в код типовой процедуры отбитое маркером //ДОБАВЛЕНО НЕТИПОВОЕ . Процедура глДвижениеОборотовПродаж(Конт, Фирма, Контрагент, Поставщик, Номенклатура, Количество, Себестоимость, ПродСтоимость) Экспорт РегПродажи = Конт.Регистр.Продажи; // измерения РегПродажи.Фирма = Фирма; РегПродажи.Поставщик = Поставщик; РегПродажи.Покупатель = Контрагент; РегПродажи.Номенклатура = Номенклатура; // ресурсы Если Количество >= 0 Тогда РегПродажи.Себестоимость = Себестоимость; РегПродажи.ПродСтоимость = ПродСтоимость; РегПродажи.Количество = Количество; //ДОБАВЛЕНО НЕТИПОВОЕ РегПродажи.СебестоимостьВ = 0; РегПродажи.ПродСтоимостьВ = 0; РегПродажи.КоличествоВ = 0; //ДОБАВЛЕНО НЕТИПОВОЕ Иначе РегПродажи.СебестоимостьВ = - Себестоимость; РегПродажи.ПродСтоимостьВ = - ПродСтоимость; РегПродажи.КоличествоВ = - Количество; //ДОБАВЛЕНО НЕТИПОВОЕ РегПродажи.Себестоимость = 0; РегПродажи.ПродСтоимость = 0; РегПродажи.Количество = 0; //ДОБАВЛЕНО НЕТИПОВОЕ КонецЕсли; РегПродажи.ДвижениеВыполнить(); КонецПроцедуры //глДвижениеОборотовПродаж() . В типовой конфиге глДвижениеОборотовПродаж() вызывается в циклах, но в циклах в модуле проведения все время работает в "ЕСЛИ" только одна из веток. Если в цикле (или последовательности вызовов) будет использование глДвижениеОборотовПродаж() так, что может работать и та и другая ветка "если" - то будет бяка... |
|||
1
Злопчинский
27.04.20
✎
01:19
|
Вот еще нарыл интересное (для себя)
. Регистр.ПартииНаличие, измерение "Партия(справочник)" и "ДатаПартии(дата)" . При проведении по партиям при возврате (в частности Документ.ВозвратОтПокупателя) . Если (МетодРасчетаСебестоимости <> Перечисление.МетодыРасчетаСебестоимости.FIFO) и (МетодРасчетаСебестоимости <> Перечисление.МетодыРасчетаСебестоимости.LIFO) и (РегПартии.СтатусПартии <> глСП.Т_Принятый) Тогда РегПартии.Партия = ПолучитьПустоеЗначение("Справочник.Партии"); РегПартии.ДатаПартии = ""; Иначе РегПартии.Партия = ТаблПартий.Партия; РегПартии.ДатаПартии = ТекДок.ДатаДок; // !!!вот здесь вот!!! // !!! в принципе доступно ТаблПартий.ДатаДок КонецЕсли; . где ТаблПартий - найденные партии продажи, которые "возвращаются" То есть при продаже партия ушла с "баланса" с ДатаПартии= 14.03.20 А при возврате партия становится на "баланс" в очередь фифо/лифо с ДатаПартии= 27.03.20 Далее при продажах очеред списания строится просто, это понятно . ТаблИтогов.Сортировать("-Фирма,"+ЗнакСортировки+"ДатаПартии,"+ЗнакСортировки+"ДокПартии",1); . Интересно, почему возвращаемую партию ставят в очередь фифо/лифо не "старой" датой, а датой возврата? Возвращенные партии (по партиеобразуещему документу) здесь будут списываться после (по фифо) партий с более молодыми партиеобразующими документами. Получается что здесь "партия" как таковая определяется датой прохождения партии НА БАЛАНС (а это м.б. и поступление, и возврат). М.б. какой-то смысл в этом есть... Интересненько, надо подумать... |
|||
2
Злопчинский
27.04.20
✎
01:21
|
Ошибочка - выше по тексту в комментарии
вместо "!!! в принципе доступно ТаблПартий.ДатаДок" следует читать "!!! в принципе доступно ТаблПартий.ДатаПартии" |
|||
3
Arbuz
28.04.20
✎
11:53
|
(0) у меня уже исправлено так же
(1) а если партия (все) закрылась? а если возврат по нескольким партиям? привязываться к партиям оснований возвратов? |
|||
4
Arbuz
28.04.20
✎
11:57
|
(3)+ а если основание - чек ккм - не партеобразующий документ? дофига перепиливать... хотя отчёт ккм у меня уже перепилен изрядно.
|
|||
5
Злопчинский
28.04.20
✎
18:14
|
отчет ККМ и у меня перепилен изярядно
а по 91) не поняд - ну идет возврат по нескольким партиям и что? идет и идет... |
|||
6
Злопчинский
01.05.20
✎
23:15
|
Вот еще нестыковочка.
Отчет.ВедомостьПоОстаткамТМЦ приводит к "неадекватным" цифрам, если выключен вывод по складу - типа считают что это внутренние перемещения(ну путать к кодом операции в перемещении "внутреннее" или "внешнее" - это другое!) Пока Запрос.Группировка(Ном) = 1 Цикл Если НазваниеГруппировки = "Документ" Тогда НазваниеСекции="Документ"; // Внутренние перемещения выводятся только в том случае, если установлена детализация или фильтр по складу Если (Запрос.Документ.Вид() = "ПеремещениеТМЦ") и (НомерГруппировкиПоСкладу = 9999) и (ВыбСклад.Выбран() = 0) Тогда //!!! вот здесь засада, условие неполное Продолжить; КонецЕсли; . должно быть . Если НазваниеГруппировки = "Документ" Тогда НазваниеСекции="Документ"; // Внутренние перемещения выводятся только в том случае, если установлена детализация или фильтр по складу Если (Запрос.Документ.Вид() = "ПеремещениеТМЦ") и (НомерГруппировкиПоСкладу = 9999) и (ВыбСклад.Выбран() = 0) Тогда //[*]progadmin, 01.05.2020, ДОБАВЛЕНО НЕТИПОВОЕ //Продолжить; //-------------------------------------------------------------------- //ошибка типового кода, не учтено что перемещение может быть //между фирмами (которые относятся к одному юрлицу), тогда это не внутренее //в типовом коде в таком случае ползет неадекватная краснота Если Запрос.Документ.ФирмаПолучатель=Запрос.Документ.Фирма Тогда Продолжить; КонецЕсли; //[*]_progadmin, 01.05.2020, ДОБАВЛЕНО НЕТИПОВОЕ КонецЕсли; |
|||
7
Злопчинский
01.05.20
✎
23:17
|
забыл место: Процедура ВывестиГруппировку() ~ +25 строк от заголовка процедуры
|
|||
8
Злопчинский
01.05.20
✎
23:22
|
даже наверное правильнее так написать:
Если Запрос.Документ.ФирмаПолучатель=Запрос.Фирма Тогда Продолжить; КонецЕсли; хотя т.к. это выводятся движения по документу-регистратору - то наверное не сильно принципиально... |
|||
9
Злопчинский
01.05.20
✎
23:24
|
пост (8) - неверный, не считается.
. писать пока так надо, как привел в первоим исправлении Если Запрос.Документ.ФирмаПолучатель=Запрос.Документ.Фирма Тогда Продолжить; КонецЕсли; |
|||
10
Бертыш
02.05.20
✎
09:43
|
Не думаю что будет актуально для моего клиента. Вы наверняка на девятке, а он так и висит на ТиС 8.7 с коей так и не переходил на девятку по причине некузявости с его точки зрения там методологии управленческого учета. Я ему обмен написал с бухией и всё, по моему так и висит последниих лет десять изредка обновляя бухию
|
|||
11
Злопчинский
02.05.20
✎
09:54
|
(10) Спасибо, что обратили внимание на инфу! ;-) не зря хоть писал ;-)
а заради интереса - не просветишь что не так "с его точки зрения методологии упр.учета"? гнасколько я помню (уж сильно давно это было) то там бух/упр были разделены тупо выбором признака в документе - бух/упр/оба, а на уровне регистров - просто проведением либо с заполненным значением реквизита "Фирма" (бух), либо с незаполненым (упр), либо две записи для "оба". Что не понравилось в 9.2 именно для упручета? что не смог реализовать? |
|||
12
Бертыш
02.05.20
✎
11:27
|
(11) Ну ему показалось что он не сможет проводить покупки и продажи левого товара как он делал в 8.7
|
|||
13
Злопчинский
02.05.20
✎
11:33
|
(12) ну.. так на коробке автомат не поедешь как на механике.. скоростей то переключать не надо. но это не мешает ехать.. ;-)
|
|||
14
Злопчинский
02.05.20
✎
11:33
|
(12) короче - можно.
|
|||
15
Злопчинский
02.05.20
✎
11:34
|
(12) спсб. что ответил
|
|||
16
Asmody
02.05.20
✎
12:00
|
Помните давеча кто-то на загнивающем специалистов по Коболу искал? Вот чем-то мне тот случай вас напоминает
|
|||
17
Бертыш
02.05.20
✎
12:34
|
(16) Дислексия на лицо.... Коболок, коболок я тебя съем :)
|
|||
18
tgu82
02.05.20
✎
16:28
|
(0) ДА праввильно подметил насчет глдвижение. Тоже наверное у себя поправлю если раньше не поправлял (давно дело было)
|
|||
19
Злопчинский
02.05.20
✎
19:34
|
(16) ну дык я ина асме и на пл/1 и на алгол-68 и на фортране, и даже на forex на бэсм-6 прогал. хрен ли нам коболы?
кто познал //GO SYSIN DD - тому наф! никакие коболы не страшны. а вотлисп - это дело интерсеное. или forth |
|||
20
Бертыш
02.05.20
✎
20:29
|
(19) Помнится излагал минимальный код для интерпретатора P-кода для x86 для tiny model
lea si, offset pCode lodsw jmp ax ret а остальное всё детали реализуемые P-кодом, то есть его словами |
|||
21
Бертыш
02.05.20
✎
20:30
|
+20 Это я к теме фортов и иже с ним
|
|||
22
Злопчинский
02.05.20
✎
20:46
|
(20) не, это для меня птичий язык, буквы только знакомые в слове jmp - остальное - "папа, это ты с кем разговаривал сейчас?"
я на ЕС ЭВМ , наших передраных на Ассемблере ибм 360/370 до сих пор помню мало-мало коды краха: 0С1 (неверная коианда) и 0С4 (нарушение защиты памяти) BR 14 - гото по адресу в регистре 14 BNE не равно BE равно MVC - пересылка байт LA и LR - тоже чтото с регистрами не помню уже. эх блин. как хорошо-то было ;-) если не работает - то сам виноват. не то что сейчас мегатаонны кода ас ис |
|||
23
Злопчинский
02.05.20
✎
23:46
|
и сюда же еще, известная хрень..
в процедуре глСписаниеОстатковТМЦ() надо поправить места где проводится расчет свободного остатка (по складу и по фирме) //исправляем недоработку типовой, иначе отрицательные резервы (когда бардак в базе) //приведут к неадекватному завышению свободного остатка и ситуация развивается как лавина //Если (ОстатокНаСкладе - РезервНаСкладе) < ТаблНоменклатуры.Количество Тогда Если (ОстатокНаСкладе - МАКС(0,РезервНаСкладе)) < ТаблНоменклатуры.Количество Тогда и //Если (ОстатокПоФирме - РезервПоФирме) < ТаблНоменклатуры.Количество Тогда Если (ОстатокПоФирме - МАКС(0,РезервПоФирме)) < ТаблНоменклатуры.Количество Тогда |
|||
24
Злопчинский
04.05.20
✎
00:23
|
Еще, в штатной норм, но могут быть траблы при доработках в глПолучитьТаблицуДокумента, поэтому лучше поправить..
. Документ.ПеремещениеТМЦ.МодульДокумента . Если СкладПолучатель.РозничныйСклад = 0 Тогда Регистр.ПартииНаличие.ЦенаПрод = 0; Иначе // Для определения продажной цены надо получить строку документа //[*]progadmin, 03.05.2020 ДОБАВЛЕНО НЕТИПОВОЕ //ТаблицаДокумента.ПолучитьСтрокуПоНомеру(ТаблСписПартий.НомерСтрокиДокумента); //---------------------------------------------------------------------------- //поиск всегда будет успешным, т.к. ТаблСписПартий - производное от ТаблицаДокумента поз = 0; ТаблицаДокумента.НайтиЗначение(ТаблСписПартий.НомерСтрокиДокумента,поз,"НомерСтрокиДокумента"); ТаблицаДокумента.ПолучитьСтрокуПоНомеру(поз); //[*]_progadmin, 03.05.2020 ДОБАВЛЕНО НЕТИПОВОЕ Регистр.ПартииНаличие. ЦенаПрод = ТаблицаДокумента.ЦенаПродПриход; КонецЕсли; Регистр.ПартииНаличие.ДвижениеПриходВыполнить(); КонецЦикла; КонецЕсли; // оприходование СписокПараметров.Установить("Склад", СкладПолучатель); СписокПараметров.Установить("Фирма", ФирмаПолучатель); Если глПриходОстатковТМЦ(Контекст,ТаблицаДокумента,СписокПараметров)=0 Тогда Возврат; КонецЕсли; КонецПроцедуры // ПереместитьНаСклад() |
|||
25
Злопчинский
12.05.20
✎
18:57
|
Пусть здесь будет
М.Мамонтам на заметку: Корректировка долга |
|||
26
Mikeware
12.05.20
✎
20:35
|
(25) ты шо, еще не слез с клюшек?
|
|||
27
ptiz
12.05.20
✎
20:59
|
(0) Всплакнуть хочется, сравнивая эти "процедурки" с мегатоннами кода УТ 11.
|
|||
28
Злопчинский
12.05.20
✎
22:38
|
(27) а по сути - что изменилось-то?! ;-)
|
|||
29
Злопчинский
12.05.20
✎
22:38
|
(26) Не, не слез...
|
|||
30
Mikeware
14.05.20
✎
20:05
|
(28) тонны гамна добавились. тормоза добавились... интерфейс модный-молодежный...
|
|||
31
vcv
14.05.20
✎
20:18
|
(29) Отрываешься от коллектива. Все на 8ку, а ты отстаёшь. И компанию свою подводишь. Ну в каком доме престарелых она будет искать нового 1Сника, когда предыдуший отдаст душу богам Кобола Бессмертного? :)
|
|||
32
Злопчинский
14.05.20
✎
21:16
|
(31) как бюджет выделят - так сразу. пока что с октября (надо было уже через неделю!!!) на УНФ перелазим. Номенклатуру перенес, шк перенес, цены перенес, чтото там еще, с 8-ком допилили расширением (в облаке УНФ) возможности с регистрацией документов качества. но сука бесят некоторые моментц шо капец.... есть много хорошего. и еще днет того что в ТИС было как штатное. Я тут в Тис ковыряю приглаживаю у одного лавочника. красота же. методически зашибись же сделано. некоторые вещи всплыли - ранее на них внимания не обращал, а сейчас понятна задумка кто разрабатываал типовую. даже несколько восхитился... а в тоннах 8-ки - что? тонны 8-ки?!
|
|||
33
Злопчинский
14.05.20
✎
21:19
|
(31) ..как бюджет выделят. я теперь последние года два-три - злобный. есть бюджет - делаю. нет бюджета - не делаю. разве только то что жизненно необходимо - тогда могу авансом работу дать немного и то по-минимум. а так - нет бюджета - нехай колотят руками. благо можно и объемы небольшие. а то как хорошо все - хрен хорошие деньги потому что ну как же такие деньги! а как плохо - ну так плохо же. ну их всех в п..у!
|
|||
34
Злопчинский
14.05.20
✎
21:20
|
Потом вся эта универсальность типовых - блин проще за час узкое наьросать что работает и понятно как и почему. чем в универсальном день разбираться.
|
|||
35
greenpoint
15.05.20
✎
13:21
|
(31) 7-ков кстати на удивление много осталось, нам резюме почти каждую неделю приходят. Найдут, если припрет
|
|||
36
Злопчинский
10.06.20
✎
01:29
|
В записульки:
* есть такая ВК admin1c.dll - всякие полезности. * в т.ч. есть метод глАдмин1С.АктивныеПодключения() - возвращает список активных сеансов (с видом сеанса - база/пофигуратор/итд). * Так вот, чтобы этот код исполнялся без проблем - сеанс1С/пользователь1С, в котором он исполняется, должен иметь права "Использование в качестве Ole Automation сервера = ДА". Иначе прога крэшится в рантайм-еррор. Поэтому, наверное, для получения списка активных сеансов следует юзать Userdef.dll - которая имеет аналогичный метод ЮзерДеф.ПолучитьСписокПользователейТЗ(КаталогИБ()); - в котором, скорее всего, используется иной список получения снеансов через парсинг файла подключений... |
|||
37
Злопчинский
16.06.20
✎
13:24
|
Вот еще наткнулся на особенность (?)
. ТаблицаЗначений . Выгрузить(<?>,,,); Синтаксис: Выгрузить(<Знач>,<НачСтрока>,<КонСтрока>,<Колонки>) Назначение: Выгрузить соответствующие ячейки таблицы значений. Параметры: <Знач> - значение типа ''Таблица значений'' или ''Список значений'', в которое нужно выгрузить данные. Если переданное значение пустое, тогда система сама создаст объект типа ''Таблица значений''. <НачСтрока> - необязательный параметр. Номер начальной строки, с которой надо начинать выгрузку. Значение по умолчанию 1. <КонСтрока> - необязательный параметр. Номер последней строки, по которую надо выгружать. Если не указан, то до последней. <Колонки> - необязательный параметр. Номера или идентификаторы колонок, которые надо выгружать. Если параметр не задан, то выгружаются все колонки. . Код . ТЗнабор = СоздатьОбъект("ТаблицаЗначений"); ТЗнабор.НоваяКолонка("Номенклатура","Справочник.Номенклатура"); ТЗнабор.НоваяКолонка("Количество","Число"); ТЗразукомплектация = ""; ТЗнабор.Выгрузить(ТЗразукомплектация); //создадим ТЗ с копией структуры . ТипЗначенияСтр(ТЗразукомплектация) = "Строка" (внезапно?) . ТЗразукомплектация = СоздатьОбъект("ТаблицаЗначений"); ТЗнабор.Выгрузить(ТЗразукомплектация); //создадим ТЗ с копией структуры . ТипЗначенияСтр(ТЗразукомплектация) = "ТаблицаЗначений" с копией структуры, то что хотелось... |
|||
38
Злопчинский
19.06.20
✎
23:09
|
Занятно, не знал об этом (или забыл...?)
если набиваем типа СпрК = СоздатьОбъект("Справочник.И-ВОТ-ТУТ-ЖМАКАЕМ-ШИФТ-2 - то вылазиет список видов сапроавочников... аналогично и сдокументами... |
|||
39
Gbpltw
20.06.20
✎
12:29
|
а по 6.0 есть чо? ))
|
|||
40
Ёпрст
20.06.20
✎
12:33
|
(38) открой для себя еще Ctrl+1 /Ctrl+2 и Alt+2/Alt+2
А так же макросы к опенконфу |
|||
41
Злопчинский
20.06.20
✎
14:02
|
(40) макросы к опенконфу - знаю, но не асилил писать...
|
|||
42
Злопчинский
21.07.20
✎
20:09
|
Еще, конечно, странно что в типовой ТИС при печати ТОРГ12 покупателю (и УПД скорее всего точно так же)
в качестве банковских реквизитов фирмы используется Фирма.ОсновнойСчет как бы логично что в банковских реквизитах указывать тот счет, на который предполагается оплата... но такой возможности в типовой нет. разве только тянуть банковский счет из документа-оснвоания ЗаявкаПокупателя если реализация на основе заявки... |
|||
43
victuan1
23.07.20
✎
06:11
|
(38) У меня по Ctrl+пробел.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |